Action chaining allows multiple controller action methods to be executed in a series from a Visualforce page, each in a separate transaction. This technique is rarely used, but does solve the following problems:
Working around governor limits; for example, repeatedly polling an external system to determine if processing triggered through a web service call has completed without breaching the limit for callouts per transaction. In this case, the same action would be chained to poll the external system and then update the Visualforce page to indicate the user whether the action had completed.
Avoiding the
MIXED_DML_OPERATION
error when the controller must modify setup and nonsetup records; for example, changing a user and an opportunity record. In this case, the first action in the chain would modify the user record, while the second would modify the opportunity record.
In this recipe, we will create a Visualforce page to create an opportunity and move it through a number of stages...