About suspension
Suspension occurs when a requested operation is sent to the Application Event System (AES) for completion at a later time. This occurs when the application event handler has the
option selected and contains an adjourning action.Suspension is possible only with certain framework events. You cannot create custom events that can be suspended. Currently, only these application events can be suspended:
- IdoOnItemInsert
- IdoOnItemUpdate
- IdoOnItemDelete
Suspension occurs when the system generates an application event that conforms to these conditions:
- It is one of these framework events that can be suspended.
- It has the check box selected (on the form) for at least one handler that applies to the generated event’s object and initiator.
When an application event is suspended
When both conditions are met, the application passes control of the requested update (insertion, update, or deletion) to the AES. The AES then ensures that the event handlers can all execute successfully before actually committing the system and the data to execute the event actions.
There are two stages: the suspend-validating stage and the suspend-committing stage.
When an application event is not suspended
When an application event that can be suspended is not suspended (that is, no event handler for that application event that applies to that event’s object and initiator has the
check box selected), the system executes the application event using this process:- The system performs a database update.
- The application event system executes all effective event handlers, returning either success or failure.
- The system handles failures as errors and exits the application event.