Managing context from the ABL client with OERequestInfo objects
OpenEdge context information accessible by an ABL client provides:
OpenEdge version information for the current ABL client — The client session can access the LOCAL-VERSION-INFO attribute on its SESSION system handle to find its OpenEdge Release information. This object reference attribute returns a Progress.Lang.OEVersionInfo class instance and its OEMajorVersion, OEMinorVersion, and OEMaintVersion properties provide the version information.
PAS for OpenEdge version information on the current ABL client — This identifies the OpenEdge Release information for a PAS for OpenEdge instance that handles a remote request for the client. The client can access the Release information for a connected PAS for OpenEdge instance using the VersionInfo property on the OERequestInfo instance returned by the server object handle's RESPONSE-INFO attribute.
Client context identifier for the next request — This is the value of the ClientContextId property on the OERequestInfo instance referenced by the server handle's REQUEST-INFO attribute when the client makes a remote request. The client application can change this value before each request, typically when the client is also a PAS for OpenEdge session in order to propagate the originating client context identifier to yet another PAS for OpenEdge instance in a multi-tier application. Otherwise, by default, the value of the property available through the server handle's RESPONSE-INFO attribute is used from the most recent PAS for OpenEdge response. The next PAS for OpenEdge session can retrieve this property value on the OERequestInfo instance referenced by the CURRENT-REQUEST-INFO attribute on its SESSION handle.
Client context identifier for the most recent server response — The client can access the client context identifier returned by the server for the most recently executed request as the value of the ClientContextId property on the OERequestInfo instance referenced by the RESPONSE-INFO attribute on the server object handle (or the asynchronous object handle returned for an asynchronous request). This value can be different from the ClientContextId property value sent by the client for the most recently executed request if the server session code changed the value for its response.
Identifier for each request — The client automatically generates a globally unique identifier for each request in the RequestId property on the OERequestInfo instance referenced by the server handle's REQUEST-INFO attribute. The PAS for OpenEdge session can read this property value on the OERequestInfo instance referenced by its SESSION handle's CURRENT-REQUEST-INFO or CURRENT-RESPONSE-INFO attribute. This value is read-only and cannot be changed by any application code.
Identifier for the most recent request — The identifier for the previous request executed on a client's server object handle is the RequestId property value on the OERequestInfo instance referenced by the RESPONSE-INFO attribute on the server object handle (or the asynchronous object handle returned for an asynchronous request).
For more information on these class properties and handle attributes, see OpenEdge Development: ABL Reference.
In addition to maintaining context for a client and PAS for OpenEdge connection, you can use the client context identifier as the key to implementing several multi-tier security models. For more information, see Implementing multi-tier security models.