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

1. Overview

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.

2. Architecture

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.

2.1 Table Relationships

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.

3. Primary Data Structures

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

5. Advanced Topics

Not Applicable

6. Dependencies

Refer to section 2 (Architecture) for details.

7. Source Files

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

9. Execution Methods

Not Applicable

10. Test Requirements and Strategies

Not Applicable

11. Supplementary Information

Not Applicable

12. Related Documentation

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