Try OpenEdge Now
skip to main content
Online Help
Introducing the Meta Catalog : Reference : ABL Reference content builder
 

ABL Reference content builder

The ABL Reference content builder extracts data on procedures, functions, and methods. The content builder first ensures that the catalog database contains the necessary records to specify the source file (catalog, root path, project, project relative path, and resource). The content builder analyzes the code to find where procedures, functions, and methods are defined, what their parameters are, and where they are used.
Each parameter is stored as a child record for the appropriate procedure, function, or method. Any entry that has parent or child entries displays them as subnodes in the Meta Catalog Explorer view.
The content builder records the following data in the catalog:
Content type
Entry type
Entry
ABLREFERENCE
PROCEDURE
The procedure name.
FUNCTION
The function name.
METHOD
The method name.
PARAMETER
The parameter name.
PROCEDURE-REF
The name of the referenced procedure.
FUNCTION-REF
The name of the referenced function.
METHOD-REF
The name of the referenced method.
Depending on the entry type, the content builder also extracts the following attribute information for each entry:
Entry type
Attribute
Value
PROCEDURE
ACCESS-MODIFIER
PRIVATE
PARAMETER
PARAMETER-TYPE
INPUT, OUTPUT, or INPUT/OUTPUT.
DATA-TYPE
The parameter's data type.
LIKE
TRUE if defined with the LIKE option.
EXTENT
The extents, if any.
NO-UNDO
TRUE if set.
FUNCTION
RETURN-DATA-TYPE
ACCESS-MODIFIER
The data type returned by the function.
PRIVATE
METHOD
RETURN-DATA-TYPE
ACCESS-MODIFIER
The data type returned by the function.
PUBLIC, PROTECTED, or PRIVATE
FUNCTION-REF
DYNAMIC
TRUE if call uses DYNAMIC-FUNCTION.
PROCEDURE-REF
PERSISTENT
TRUE if procedure is run persistently.
The content builder assigns IDs to each unique Entry and Attribute. It stores the location of these elements in the file, either as a line number or as characters from the file's beginning. The content builder also stores pointers to any parent or child entries.
For example, take the following procedure:
PROCEDURE activateSession :
  DEFINE INPUT PARAMETER pcSessType AS CHARACTER NO-UNDO.
  RUN storeAppServerInfo IN TARGET-PROCEDURE
    ("":U).
  DYNAMIC-FUNCTION("setSessionParam":U IN TARGET-PROCEDURE,
                   "client_SessionType":U,
                   pcSessType).
END PROCEDURE.
When the content builder analyzes this statement, it adds the following information to the database:
Content Type
Entry type
Entry
Attributes
Attribute values
ABLREFERENCE
PROCEDURE
activateSession
 
 
PARAMETER
pcSessType
PARAMETER-TYPE
INPUT
DATA-TYPE
CHARACTER
NO-UNDO
TRUE
PROCEDURE-REF
storeAppServerInfo
 
 
FUNCTION-REF
setSessionParam
DYNAMIC
TRUE
As mentioned previously, the content builder also stores the data on any parent or child relationships for each entry.
When displayed in the Meta Catalog Explorer, you would see the following structure: