OpenEdge allows your client application to handle asynchronous request results using an asynchronous event procedure 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 event procedure returns any results from the 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 signature must correspond to the signature of the remote procedure, you typically must define a unique event procedure to handle the results for 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.