Super procedure language syntax
- Last Updated: January 22, 2026
- 2 minute read
- OpenEdge
- Version 12.8
- Documentation
On the face of it, there is nothing special about a super procedure. That is, there is nothing specific in the ABL syntax of an ABL procedure file to identify it as a super procedure. Rather, it is how the procedure is referenced by other procedures that makes it a super procedure. Having said this, there are definite guidelines to follow when you build a procedure file that you want to use as a super procedure. These guidelines are discussed in the next section. First, you’ll examine the syntax used for super procedures.
PERSISTENT:
|
ADD-SUPER-PROCEDURE() method
|
|
SESSION handle, in which case its contents are available to
every procedure running in the OpenEdge session:
|
The optional search-directive can be either
SEARCH-SELF (the default) or SEARCH-TARGET.
The significance of this option is discussed in the Super procedure guidelines section.
REMOVE-SUPER-PROCEDURE() method
THIS-PROCEDURE, SESSION, or some other
handle:
|
ADD-SUPER-PROCEDURE() methods for any given
procedure handle (including SESSION). The super procedure handles
form a stack, which is searched in Last In First Out (LIFO) order when the AVM
encounters a RUN statement or a function reference at run time.
That is, the super procedure added last is searched first to locate the entry point
to run. At any time, you can retrieve the list of super procedure handles associated
with a procedure using the SUPER-PROCEDURES attribute of a procedure
handle:
|
This attribute evaluates to a character string holding the list of super procedure handles (starting with the last one added, therefore indicating the order in which they are searched) as a comma-separated character string.