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: