Try OpenEdge Now
skip to main content
Developing AppServer Applications
Programming the AppServer : Accessing the name of the current remote procedure
 

Accessing the name of the current remote procedure

An OpenEdge AppServer runs certain configuration procedures when a client runs external or internal procedures. AppServer configuration procedures are ABL procedures that you specify when you configure an AppServer; the procedures run typically before and after invoking remote procedures during an AppServer agent's lifetime.
One set of configuration procedures includes the Activate and Deactivate procedures. These procedures encapsulate logic that executes automatically for certain client requests (remote procedures) on an AppServer running in stateless and state-free operating modes.
With the help of the read-only ProcedureName property on the Progress.Lang.OERequestInfo class, you can access the name of the internal or external procedure invoked by the ABL client. You can use the ProcedureName property to identify the client-invoked procedure in any procedure currently running on the AppServer, including configuration procedures, such as the Activate and Deactivate procedures. You can use the instance of OERequestInfo referenced by the CURRENT-REQUEST-INFO attribute on the AppServer agent's SESSION system handle. For more information on this attribute, see the Managing state-free and stateless client context.
The ProcedureName property captures the name of the procedure along with the relative or absolute path as specified in the client code that runs the remote procedure. If no path is specified with the external procedure filename in the client's RUN statement, the property captures only the procedure filename.
The following table lists the procedure path or filename for various requests invoked by a client, and provides a description of each ProcedureName property setting as a result.
Table 3. RUN requests and ProcedureName property values
RUN request on the ABL client
Procedure path or filename
Description
RUN test/foo.p ON SERVER hdl.
test/foo.p
The procedure name includes the relative path. The test directory is in the OpenEdge working directory on the AppServer.
RUN C:/OpenEdge/WRK/test/foo.p ON SERVER hdl
C:/OpenEdge/WRK/test/​foo.p
The procedure name includes the absolute path.
RUN bar.p ON SERVER hdl
bar.p
No path is specified in the procedure name: bar.p is in the OpenEdge working directory on the AppServer.
Note: For execution of an internal procedure defined in a remote persistent, single-run, or singleton procedure, ProcedureName has the format External-Procedure-Name&Internal-Procedure-Name, where External-Procedure-Name is the name of the remote external procedure and Internal-Procedure-Name is the name of its executing internal procedure.
* Accessing a procedure name on the AppServer