Wizard Control Transaction Processing

All data is saved with a single transaction when the user clicks the Finish button. Contrast this behavior with clicking the Next button which validates data, but does not save it to the business view. Consequently, it is recommended that you limit the number of pages in a wizard for performance purposes.

The save transaction boundary is composed of and defined by this sequence of events:

  1. Runtime initiates the transaction.

  2. Runtime saves each page into the business view.

  3. Runtime fires the Post Button Clicked event if it encounters a Save button on a page (the event fires for each button encountered).

  4. Runtime fires the Post Button Async event for each Save button instance in a separate thread.

  5. Runtime fires the wizard control event: Wizard is Finished-After.

  6. Runtime performs the commit/rollback transaction.

Do not call form interconnects during any of the events inside the transaction boundary. Opening a new form will prolong the transaction and severely impact system performance.

For this reason, do not launch a separate "confirmation form" from any of these events. Instead, it is recommended that you use the last page of the wizard as the confirmation page. If it must be a separate form, then launch a confirmation form in the Wizard is Exited event. You can use the system variable SV Curr_Wizard_Action and launch only the confirmation form when the user clicks the Finish button.