Processing Rules

Any rules executed after the Validate state are considered "processing" rules, meaning the algorithms are responsible for causing something to occur. The following sections highlight unique functionality for processing type form rules.

Processing Form Data Using Form Rules

Once a form's data has been verified, it may be posted into the system. A posted form may subsequently be adjusted to correct information, transferred to another obligation or account or reversed altogether. At each of these steps in the lifecycle, other actions need to take place. The system may need to create taxpayers, accounts and obligations, create financial details, create overpayment processes or possibly reverse the effect of previous updates.

The base package Apply Form Rules algorithm type (C1-FRM-APPRL) is designed to be used on any state that requires rules processing. To use this algorithm type to execute processing rules, you need to define a rule event applicable to that state and plug in an algorithm configured to execute rules for that event. The base package includes the following pre-configured rule events and associated algorithms: Suspend, Waiting for Information, Ready for Posting, Post, Cancel, Adjust, Transfer and Reverse. The base package business objects C1-ParentTaxForm and C1-ParentRegistrationForm include appropriate algorithms for all the listed rule events as Enter plug-ins for the corresponding states.

Processing Rules Create Other Objects

Algorithms that perform processing rules are responsible for any data updates that affect other objects in the system such as accounts, obligations, adjustments and others. As such, they are also responsible for creating form log entries that link those objects to the form being processed. Refer to the base algorithm Create Assessment From Form Line (C1-FR-CRASMT) for an example of a rule algorithm that creates an assessment adjustment and its associated log entry.

Processing Rules Do Not Report Exceptions

In a typical form lifecycle, the actions that take place when a form is posted, adjusted, transferred or reversed are interrelated. If one of these actions is not successful, an error should be reported and the form should remain in the same state as before the updates took place. For this reason, the system does not support exception handling after processing rules are executed. Any issues that are encountered should be reported using standard error handling.