A QA Build program consists of a program header (edited using the Summary and Output Devices screens) and a procedure tree that determines the procedures of which it is composed and the order in which they are executed. A procedure tree is represented in the program editor by a program flow diagram and consists of procedures and procedure bodies.
Procedures specify a procedure body and define subsidiary procedures to be executed, that is other procedures called by the current procedure. Each procedure may be called by any other procedure and hence re-used in many programs.
The Procedure Body is the basic building block for QA Build programs. A procedure body describes some action to be performed, using table processing (to read and write to the database), and maps interact with the user on screen (or print data to a file, printer or other device), and field processing to define the details of the procedure logic. A procedure body may do little more than update a single variable, or clear some part of the display, or on the other hand it may contain a significant amount of processing - it is possible to write static data maintenance programs using a single procedure body. Like procedures a procedure body can be used by more than one procedure and re-used in many programs.
Each program, procedure, and procedure body has a short description associated with it, to aid programmers when they select an existing procedure or procedure body to include in a procedure tree. It is also possible to create a more extensive documentation record in each case.
Another component of QAB, existing independently of programs, is Function Definitions. These allow you to define such things as extensions to QAB's formula evaluation facilties (either via C, or just as macros that encapsulate complex or frequently used formulas).
As with other DP4 programs all input and output, whether using the screen, or any other device is done via a map. Maps are stored independently of QAB programs. You group a set of related maps into mapsets. The maps in a mapset share a common mapname and are distinguished by a unique map number.
Maps are usually created using the Map Editor which will be started at appropriate points as you create your QA Build programs. Maps are introduced in the Introduction to DP4 here.