| |
| |
Preface | |
| |
| |
| |
Start Here | |
| |
| |
| |
Read.Me (No Kidding) | |
| |
| |
| |
Creating a Library for the Examples | |
| |
| |
| |
Entering Commands and Parameters | |
| |
| |
| |
Changing the Current Library | |
| |
| |
| |
Creating an Output Queue | |
| |
| |
| |
Messages | |
| |
| |
| |
Changing Your User Profile | |
| |
| |
| |
Working with Spool Files | |
| |
| |
| |
Printing a Spooled File | |
| |
| |
| |
Creating Source Physical Files | |
| |
| |
| |
Bon Voyage! | |
| |
| |
| |
"Hello AS/400" | |
| |
| |
| |
COBOL/400--The Language | |
| |
| |
| |
The AS/400 | |
| |
| |
| |
OS/400 Objects | |
| |
| |
| |
Libraries and Library Lists | |
| |
| |
| |
Source Physical Files | |
| |
| |
| |
System/36 Environment Considerations | |
| |
| |
| |
Tools for Development | |
| |
| |
| |
Summary | |
| |
| |
| |
"Hello World" | |
| |
| |
| |
README.TXT | |
| |
| |
| |
OS/400 Library, File, and Member Structure | |
| |
| |
| |
Overview of the Examples | |
| |
| |
| |
"Hello World" Using DISPLAY | |
| |
| |
| |
"Hello World" Program Using Extended DISPLAY/ACCEPT | |
| |
| |
| |
"Hello World" Using an External Display | |
| |
| |
| |
COBOL/400 Enhancements | |
| |
| |
| |
Scope Terminators and Conditional Phrases | |
| |
| |
| |
Definitions | |
| |
| |
| |
Explicit Scope Terminators | |
| |
| |
| |
Exception Phrases | |
| |
| |
| |
Arithmetic Statements | |
| |
| |
| |
Data Movement Statements | |
| |
| |
| |
Subprogram Linkage | |
| |
| |
| |
Ordering | |
| |
| |
| |
Input/Output Statements | |
| |
| |
| |
Summary | |
| |
| |
| |
The PERFORM Statement | |
| |
| |
| |
In-Line versus Out-of-Line Perform Statement | |
| |
| |
| |
PERFORM Statement Formats | |
| |
| |
| |
Unconditional PERFORM | |
| |
| |
| |
Conditional PERFORM | |
| |
| |
| |
The TIMES Phrase | |
| |
| |
| |
The UNTIL Phrase | |
| |
| |
| |
The VARYING Phrase | |
| |
| |
| |
Summary | |
| |
| |
| |
The EVALUATE Statement | |
| |
| |
| |
Understanding EVALUATE by Example | |
| |
| |
| |
Basic EVALUATE Functionality | |
| |
| |
| |
EVALUATE Using Two Subjects | |
| |
| |
| |
Using TRUE and FALSE in the Selection Set | |
| |
| |
| |
Using THROUGH (or THRU) | |
| |
| |
| |
Summary | |
| |
| |
| |
Other Noteworthy Points | |
| |
| |
| |
The INITIALIZE Statement | |
| |
| |
| |
The LIKE Clause | |
| |
| |
| |
The LENGTH OF Special Register | |
| |
| |
| |
The CONTINUE Statement | |
| |
| |
| |
Calling Subprograms | |
| |
| |
| |
Executing a CL Command using QCMDEXC | |
| |
| |
| |
Accessing the Local Data Area (LDA) | |
| |
| |
| |
Reference Modification | |
| |
| |
| |
MOVE with De-editing | |
| |
| |
| |
Performance Considerations | |
| |
| |
| |
AS/400 File Concepts | |
| |
| |
| |
Physical and Logical Files | |
| |
| |
| |
Physical and Logical Files Defined | |
| |
| |
| |
Externally Described versus Program Described Database Files | |
| |
| |
| |
Using DDS to Describe Files | |
| |
| |
| |
Field Reference Files | |
| |
| |
| |
Using COPY to Obtain Externally Described File Layouts into a COBOL Program | |
| |
| |
| |
Overriding Files | |
| |
| |
| |
Using OPNQRYF | |
| |
| |
| |
Using QTEMP for Temporary Work Files | |
| |
| |
| |
DDS for Physical and Logical Files | |
| |
| |
| |
Summary | |
| |
| |
| |
Display Files | |
| |
| |
| |
Externally Described Display Files | |
| |
| |
| |
Defining a Panel | |
| |
| |
| |
Indicators | |
| |
| |
| |
Command Keys | |
| |
| |
| |
Overlaying Records | |
| |
| |
| |
Subfiles | |
| |
| |
| |
Displaying Messages | |
| |
| |
| |
Level Checks | |
| |
| |
| |
Summary | |
| |
| |
| |
Printing | |
| |
| |
| |
Printers and Writers | |
| |
| |
| |
Output Queues | |
| |
| |
| |
Printer Files | |
| |
| |
| |
Program-Described Printer Files | |
| |
| |
| |
Externally Described Printer Files | |
| |
| |
| |
Overriding Printer Files | |
| |
| |
| |
DDS for Printer Files | |
| |
| |
| |
Summary | |
| |
| |
| |
Command Language | |
| |
| |
| |
Command Language Programming Basics | |
| |
| |
| |
Overview | |
| |
| |
| |
CL Program Structure | |
| |
| |
| |
CL Variables | |
| |
| |
| |
Program Control | |
| |
| |
| |
Obtaining System Information | |
| |
| |
| |
Using Data Areas and Data Queues | |
| |
| |
| |
Libraries | |
| |
| |
| |
Using Files in a CL Program | |
| |
| |
| |
Defining Commands | |
| |
| |
| |
Bringing it All Together | |
| |
| |
| |
Using the OPNQRYF Command | |
| |
| |
| |
File Journaling and Commitment Control | |
| |
| |
| |
Commitment Control | |
| |
| |
| |
Journaling Access Paths | |
| |
| |
| |
Becoming a "Journalist" | |
| |
| |
| |
Summary | |
| |
| |
| |
Messages and Message Files | |
| |
| |
| |
System Messages | |
| |
| |
| |
Message Queues | |
| |
| |
| |
Message Files | |
| |
| |
| |
Creating a Message Queue | |
| |
| |
| |
Creating a Message File | |
| |
| |
| |
Adding Messages | |
| |
| |
| |
Sending Messages to Users | |
| |
| |
| |
Sending Messages from a CL Program | |
| |
| |
| |
Sending Messages from COBOL | |
| |
| |
| |
Design Concepts | |
| |
| |
| |
Object-Oriented Design--The AS/400 Way | |
| |
| |
| |
Before Starting | |
| |
| |
| |
Object-Oriented Analysis in a Nutshell | |
| |
| |
| |
Using Commands and Programs | |
| |
| |
| |
References | |
| |
| |
| |
Writing COBOL/400 Programs with Style | |
| |
| |
| |
Standardize Source Physical File Names | |
| |
| |
| |
Standardize Variable Naming | |
| |
| |
| |
Standardize Indicator Assignments | |
| |
| |
| |
Fill in the IDENTIFICATION DIVISION | |
| |
| |
| |
Use Informative File Names | |
| |
| |
| |
Avoid Using ALL-FORMATS with Display Files | |
| |
| |
| |
Use the LIKE Clause Whenever Possible | |
| |
| |
| |
Use 88-Level Conditionals | |
| |
| |
| |
Use Indents Properly | |
| |
| |
| |
Paragraph Naming (Numbered versus Non-Numbered) | |
| |
| |
| |
Keep Paragraph Short | |
| |
| |
| |
Avoid the Use of GO TO | |
| |
| |
| |
use Scope Terminators | |
| |
| |
| |
Use READ WITH NO LOCK for File Inquiry | |
| |
| |
| |
Use Subprograms for Modularity | |
| |
| |
| |
Use In-Line PERFORM Statements Whenever Possible | |
| |
| |
| |
Use the MOVE CORRESPONDING Statement | |
| |
| |
| |
Use the EVALUATE Statement Instead of Nested IF Statements | |
| |
| |
| |
COBOL Date Routines | |
| |
| |
| |
COPY Books | |
| |
| |
| |
Base Routines | |
| |
| |
| |
Date Routines | |
| |
| |
| |
Application Development with COBOL/400 | |
| |
| |
| |
Project Definition | |
| |
| |
| |
Database Requirements | |
| |
| |
| |
Module Definitions | |
| |
| |
| |
Main Menu | |
| |
| |
| |
Messages | |
| |
| |
| |
Work with Phone Director (Main Task Manager) | |
| |
| |
| |
Add Phone Entry | |
| |
| |
| |
Display Phone Entry | |
| |
| |
| |
Change Phone Entry | |
| |
| |
| |
Delete Phone Entry | |
| |
| |
| |
Add Service Request | |
| |
| |
| |
Service Manager Functions | |
| |
| |
| |
Setting Up the Environment | |
| |
| |
| |
Creating the Source Physical Files | |
| |
| |
| |
Creating a Field Reference File | |
| |
| |
| |
Creating the Database Files | |
| |
| |
| |
Creating the Main Menu using the Screen Design Aid (SDA) | |
| |
| |
| |
Creating a Message File | |
| |
| |
| |
Creating the COBOL Data Definition Copy Book | |
| |
| |
| |
Using OS/400 APIs | |
| |
| |
| |
Creating the Retrieve Current User (RTVCURUSR) Program | |
| |
| |
| |
Create the "Add Phone Entry" Module | |
| |
| |
| |
Creating the Command | |
| |
| |
| |
Creating the Linkage Copy Book | |
| |
| |
| |
Creating the Display File | |
| |
| |
| |
Creating the COBOL Program | |
| |
| |
| |
Testing the ADDPHNE Program | |
| |
| |
| |
Using the Debugger | |
| |
| |
| |
Create the "Change Phone Entry" Module | |
| |
| |
| |
Creating the Command | |
| |
| |
| |
Creating the Display File | |
| |
| |
| |
Creating the COBOL Program | |
| |
| |
| |
Testing the Change Phone Entry Module | |
| |
| |
| |
Create the "Display Phone Entry" Module | |
| |
| |
| |
Creating the Command | |
| |
| |
| |
Creating the Display File | |
| |
| |
| |
Creating the COBOL Program | |
| |
| |
| |
Testing the Display Phone Entry Module | |
| |
| |
| |
Create the "Delete Phone Entry" Module | |
| |
| |
| |
Creating the Command | |
| |
| |
| |
Creating the COBOL Program | |
| |
| |
| |
Testing the Delete Phone Entry Module | |
| |
| |
| |
Create the "Work with Phone Directory" Module | |
| |
| |
| |
Creating the Command | |
| |
| |
| |
Creating the Command Language Program | |
| |
| |
| |
Creating the Display File | |
| |
| |
| |
Creating the COBOL Program | |
| |
| |
| |
Taking a Test Drive | |
| |
| |
| |
Creating the Service Manager | |
| |
| |
| |
Creating a Learning Subsystem | |
| |
| |
| |
Creating the Service Request Message Queue | |
| |
| |
| |
Creating the Start and End Modules | |
| |
| |
| |
Creating the Service Manager | |
| |
| |
| |
The Create Service Request Module | |
| |
| |
| |
Testing the Service Manager | |
| |
| |
| |
Message-Handling Application Program Interfaces | |
| |
| |
| |
Sending Messages with QMHSNDM Application Program Interface | |
| |
| |
| |
QMHSNDM Parameter List | |
| |
| |
| |
Sending Messages with QMHSNDPM API | |
| |
| |
| |
QMHSNDPM Parameter List | |
| |
| |
| |
Removing Messages with the QMHRMVPM API | |
| |
| |
| |
QMHRMVPM Parameter List | |
| |
| |
| |
Summary of IBM Extensions | |
| |
| |
| |
Character-String Considerations | |
| |
| |
| |
Identification Division | |
| |
| |
| |
Environment Division | |
| |
| |
| |
Data Division | |
| |
| |
| |
Procedure Division | |
| |
| |
| |
Copy Statement--All Divisions | |
| |
| |
| |
Transaction Files | |
| |
| |
| |
Compiler-Directing Statements | |
| |
| |
| |
COBOL/400 Compiler Limits | |
| |
| |
| |
COBOL/400 Syntax Reference | |
| |
| |
| |
EBCDIC and ASCII Collating Sequences | |
| |
| |
| |
EBCDIC Collating Sequence | |
| |
| |
| |
ASCII Collating Sequence | |
| |
| |
| |
COBOL/400 Reserved Words | |
| |
| |
| |
File Status Key Values and Meanings | |
| |
| |
| |
Symbols Used in the PICTURE Clause | |
| |
| |
Index | |