ABL Application Schema content builder
The ABL Application Schema content builder extracts data on temp-tables and ProDataSets from source files. 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). Then it analyzes the code to extract the specific information.
The content builder creates parent and child records to describe the full schemas:
Entry type | Child entry types | Child entry types |
---|---|---|
TEMP-TABLE | FIELD | |
INDEX |
INDEX-FIELD |
|
DATASET | BUFFER | |
DATA-RELATION | RELATION-FIELD |
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 |
---|---|---|
APPSCHEMA | TEMP-TABLE | The temp-table's name. |
FIELD | The name of a temp-table field. | |
INDEX | The name of a temp-table index. | |
INDEX-FIELD | The name of a field in a temp-table index. | |
DATASET | The ProDataSet's name. | |
BUFFER | The name of a ProDataSet buffer. | |
DATA-RELATION | The name of a ProDataSet data relationship. | |
RELATION-FIELD | The name of a field in a ProDataSet data relationship. |
Depending on the entry type, the content builder also extracts the following attribute information for each entry:
Entry type | Attribute | Value |
---|---|---|
TEMP-TABLE | NO-UNDO | TRUE or FALSE. |
GLOBAL | TRUE if a global temp table. | |
SHARED | TRUE if a shared temp table. | |
LIKE | TRUE if defined with the LIKE option. | |
FIELD |
DATA-TYPE | The data type. |
LIKE | TRUE if defined with the LIKE option. | |
EXTENT | TRUE if extents exist. | |
FORMAT | The format, if any. | |
LABEL | The label, if any. | |
INITIAL | The initial value, if any. | |
INDEX |
PRIMARY | TRUE if a primary index. |
UNIQUE | TRUE if a unique index | |
WORD-INDEX | TRUE if a word index. | |
INDEX-FIELD | SORT | ASCENDING or DESCENDING. |
DATASET | SHARED | TRUE if a shared ProDataSet. |
DATA-RELATION | REPOSITION | TRUE if applicable. |
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 temp-table definition:
When the content builder analyzes this statement, it adds the following information to the database:
Content Type | Entry type | Entry | Attributes | Attribute values |
---|---|---|---|---|
APPSCHEMA | TEMP-TABLE | ttOrd | SHARED | TRUE |
FIELD | OrderNum | DATA-TYPE | DECIMAL | |
CustName | DATA-TYPE | CHARACTER | ||
LABEL | "Name" | |||
OrderDate | LIKE | TRUE | ||
INDEX | OrderNum | PRIMARY | TRUE | |
UNIQUE | TRUE | |||
CustOrder | UNIQUE | TRUE | ||
OrderDate |
|
|
||
INDEX-FIELD |
CustName | SORT | ASCENDING | |
OrderDate | SORT | ASCENDING | ||
OrderNum | SORT | ASCENDING | ||
OrderNum | SORT | ASCENDING |
There are two OrderNum entries because two indexes use it.
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: