Registration Forms Have A Common Lifecycle

The base product supplies a parent business object for registration forms that defines the following lifecycle:

Pending
The registration form is created in an initial state where processing rules are not yet executed. This allows the form to be saved as work-in-progress.
Validated
A validation step verifies the information on the registration form. Validation form rules specific for the form type are executed to check the validity of the form data. Any issues detected at this step usually causes form processing to stop.
Suspended
A registration form goes into this state when the validation step detects errors on the form that a user may be able to investigate and resolve. Exceptions are stored in the system so that a user can resolve the issues accordingly. The form needs to be re-validated after the issues are resolved.
Waiting for Information
A registration form goes into this state when the validation step detects missing information, thus preventing the system from further proceeding with form processing. Exceptions are stored in the system so that a user can track the issues accordingly. In addition, this state usually triggers correspondence to the taxpayer, requesting for the missing information. The form is usually re-validated after the missing information is received.
Ready for Posting
When a registration form passes validation, it transitions to Ready for Posting. From here a user may choose to make further changes by re-editing the form. Or the form can transition to Posted.
Re-edited
When a user is creating or correcting a form and it passes validation, there may still be a need to review and correct the data further. A form in the Ready for Posting state may be updated by transitioning it to Re-edited. The form needs to be re-validated once it is re-edited.
Posted
When a registration form passes validation, it can transition to Posted. The posting of a form typically causes other data in the system to be added or updated based on the purpose of the registration form. Posting form rules specific to the form type are responsible for the posting logic.
Canceled
Forms that are not yet posted may be canceled if a user determines that the form was created incorrectly.

The base package provides a registration form business object C1-ParentRegistrationForm that has the lifecycle described above. Specific form business objects created using form generation are child forms for a common parent form BO so that the lifecycle is consistent for all forms. The base parent BO may be used or an implementation may create a custom business object. Refer to the business object meta-data for more details on the lifecycle, including the allowed transitions and the algorithms provided.