OpenEdge allows your client application to handle asynchronous request results using an asynchronous event procedure or method that executes in response to a PROCEDURE-COMPLETE event. As with other ABL events, this event is handled in the context of the next PROCESS EVENTS statement or blocking I/O statement (such as WAIT-FOR) following the activation of the PROCEDURE-COMPLETE event.

The asynchronous callback event procedure or method receives any results from the asynchronous request to its own context block, using appropriate input parameters that you define according to the signature of the remote procedure that you invoke asynchronously. Because the event procedure or method signature must correspond to the signature of the remote procedure, you typically must define a unique event procedure or method to handle the results of each remote procedure that you call asynchronously.

The timing and availability of asynchronous request results is, of course, variable. However, the order of the results returned for multiple asynchronous requests differs markedly, depending on the application model and implementation, as described in the following sections.