AppBuilder Temp-Tables
Coding and Troubleshooting in the ADM
Beta Draft
Author: (Author's Name)
Date Last Updated: (Date)
Scheduled Release: (Release Number)
Revision History
The following revisions have been made to this document:
Date: (date)
Revision: (rev-no)
Developer: (developer)
Summary of Changes: (summary)
Copyright © 2000 by Progress Software Corporation ("PSC"), 14 Oak Park, Bedford, MA 01730, and other contributors as listed below. All Rights Reserved.
The Initial Developer of the Original Code is PSC. The Original Code is Progress IDE code released to open source December 1, 2000.
The contents of this file are subject to the Possenet Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. A copy of the License is available as of the date of this notice at http://www.possenet.org/license.html
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. You should refer to the License for the specific language governing rights and limitations under the License.
Contributors
Jane Contributor, Joe Contributor
Contents
1. Overview
2. Architecture
2.1 Table Relationships
3. Primary Data Structures
4. Primary Algorithms and Processes
5. Advanced Topics
6. Dependencies
7. Source Files
8. Build Process and Requirements
9. Execution Methods
10. Test Requirements and Strategies
11. Supplementary Information
12. Related Documentation
The AppBuilder temp-tables comprise the core of the AppBuilder tool. All of the information needed to generate a procedure file is stored in these tables. Some of the temp-tables are used to support the various functions of AppBuilder such as Extended Features (XFTRs), Alternate Layouts and HTML-mapping. Others are used to hold the properties and methods of interface objects. This document describes the different temp-tables used by AppBuilder and their interrelationships.
The data model that supports the AppBuilder tool has evolved since the tool’s inception in 1992, as improvements were made and new functionality was introduced. The relationships between tables can be complex in some cases, so care should be taken when examining and modifying the tables and the code that references them. The key to understanding the behavior of AppBuilder lies in understanding these temp-tables and how they relate to one another.
Volumes could be written about how these tables are used throughout the AppBuilder environment, and many of the other Open Source documents may discuss the specific uses of their dependent tables, so this document will only attempt to briefly describe each table’s purpose and relationship to the overall data model.
The following diagram shows the manner in which AppBuilder’s internal temp-tables are related, and what fields are used to relate them. Please note that the symbols used in the diagram are only meant to express the basic nature of the actual temp-table structure, and do not necessarily represent any formal Entity-Relationship standard methodology, such as IDEF1X. The nature of AppBuilder’s table relationships is primarily hierarchical vs. relational: tables contain fields that contain the RECIDs of other tables. In this sense, a given table (such as the _U table) can be extended by pointing to the address (or RECID) of another table. There are also cases where two tables can be related in a one-to-many fashion: many records in the _TRIG table can be related to a single _U record (i.e., an interface widget with several UI triggers). The _TRIG records would contain the RECID of the corresponding _U table in their _wRecid fields.
The diagram is intended to provide a high-level view of the table relationships; further inspection of the temp-tables themselves is necessary to understand their specific properties and linkage.
The following is a list of AppBuilder’s internal temp-tables along with a description of their purpose:
Temp-table Name
Label
Description
_U
Universal Widget
“Anchor” for each individual widget; contains identifying properties such as name and type, basic widget properties, links to parent and ancillary records.
_C
Container
Properties specific to Container objects.
_F
Field
Properties specific to Field-level objects.
_M
Menu
Properties specific to Menu objects.
_P
Procedure
Properties specific to Procedure objects.
_BC
Browse Column
Properties specific to Browse Columns.
_S
SmartObject
Properties specific to SmartObjects.
_Q
Query
Properties specific to Queries.
_TT
Temp-Table
Properties specific to Temp-Tables.
_UF
User Field
Free-form definitions for procedures.
_HTM
HTML Field
Webspeed HTML-mapped fields.
_XFTR
Extended Feature
Properties specific to Extended Features.
_TRG
Trigger
Properties specific to code blocks, e.g., UI triggers, internal procedures and functions.
_ADMLINKS
ADM Links
Properties specific to the linkage between SmartObjects.
_L
Widget Layout
Properties specific to the layout of widgets, e.g., position, dimensions.
_LAYOUT
Layout Description
Properties describing each layout definition, e.g., name, display environment.
4. Primary Algorithms and Processes
Not Applicable
Not Applicable
Refer to section 2 (Architecture) for details.
The AppBuilder temp-tables are defined in the following source files:
Source File
Description
adeuib/uniwidg.i
Definitions for _U, _C, _F, _M, _P, _Q, _S, _TT, _UF
adeuib/xftr.i
Definition for _XFTR
adeuib/layout.i
Definitions for _L and _LAYOUT.
adeuib/triggers.i
Definition for _TRG.
adeuib/admlinks.i
Definition for _ADMLINKS.
adeuib/brwscols.i
Definition for _BC.
adeweb/htmwidg.i
Definition of _HTM.
8. Build Process and Requirements
Not Applicable
Not Applicable
10. Test Requirements and Strategies
Not Applicable
Not Applicable
The following documents provide additional information about AppBuilder:
· AppBuilder Developers Guide
· AppBuilder Online Help
· AB Character Run Support
· AB Code References Window
· AB Custom Lists
· AB Initialization
· AB Multiple Layout
· AB New Object Dialog
· AB OCX Support
· AB Open and Save
· AB Palette
· AB Procedure Windows
· AB Property Sheet Generation
· AB Section Editor
· AB Undo