Class

advertisement
Any Questions?
Week 1 - 2nd Lecture
Intro to COBOL Programming
Defining Files and Processing Data
What is COBOL?
• Designed by the US defense department
• Meant to be English like for ease of
maintenance
COmmon Business Oriented Language
Agenda
•
•
•
•
•
•
•
How does a compiler work?
Creating a COBOL Program
Parts of a COBOL Program
The Perform Statement
Defining Files
Defining Variables
COBOL Verbs
Compilers
• Translate programs written by humans into
Machine Language Code
directly executable code
vs
2 step translate and execute programs
ie Basic, C, C++, HTML etc.
COBOL Compiler on the iSeries
Source
Code
QCBLLESRC
(PGM1)
Compiled
Listing
(PGM1)
COBOL
Compiler
Program
Object
(PGM1)
Steps to Create a COBOL
Program
Working in the Source Physical File –
QCBLLESRC (created previously)
1. Create a Source Member in the Source Physical file with
the type CBLLE
2. Type in the COBOL code syntax statements using an
editor i.e. RDS, SEU
3. Save & Exit
4. Compile and generate the executable code
5. Repeat 1 through 4 for each program required
Defining Files and Processing
Data
Cobol Program Structure
Common Elements
8
A source program consists of
FOUR DIVISIONS
IDENTIFICATION DIVISION.
•Identifying the program
ENVIRONMENT DIVISION.
•Defining the files, peripherals, etc.
DATA DIVISION.
•Defining the variables to use in the program
PROCEDURE DIVISION.
•Instructing the computer to work with the data
9
Identifying The Program
PT001F
Payroll
Records
PAYREP
The Cobol
Program
PRINTER
FILE
Payroll
Report
10
Column 8
IDENTIFICATION DIVISION.
PROGRAM-ID.
PAYREP.
AUTHOR.
Barake, Juan - DB344E40.
* TO PRINT PAYROLL REPORT
To start Division,
Paragraph
Column 7
Comment Lines
Ignored by the Compiler
11
Identification Division
• Required
– Name of the Program in the Program-ID
paragraph.
• Optional
–
–
–
–
Author
Installation
Date-Written
etc.
Identification Division
(Syntax)
IDENTIFICATION DIVISION.
PROGRAM-ID. program-name.
[AUTHOR. [comment-entry] … ]
[INSTALLATION. [comment-entry] …]
[DATE-WRITTEN. [comment-entry] …]
[DATE-COMPILED. [comment-entry] …]
[SECURITY. [comment-entry] …]
Environment Division
Defines the operational environment
and connecting a programs internal
file / device requirements to the
physical system environment.
Environment Division
[ENVIRONMENT DIVISION.]
[CONFIGURATION SECTION.]
Identifies the computer used to write / create the program
and the computer it is intended to operate / execute on.
[INPUT-OUTPUT SECTION.]
[FILE-CONTROL.]
Connects the programs internally declared devices / files
to the operating system devices / files.
Environment Division
(Syntax)
[ENVIRONMENT DIVISION.]
[CONFIGURATION SECTION.]
[SOURCE-COMPUTER. AS/400.]
[OBJECT-COMPUTER. AS/400.]
[INPUT-OUTPUT SECTION.]
[FILE-CONTROL.]
[SELECT nice-file-name
ASSIGN to DISK/PRINTER/WORKSTATIONphysical-file-name.]
Environment Division
• INPUT-OUTPUT SECTION is only required if
your program uses files.
– Contains the FILE-CONTROL paragraph
•
•
•
•
•
DISK
PRINTER
DATABASE
WORKSTATION
FORMATFILE
– similar to setting up file pointers
THE ENVIRONMENT
The Data File
PT001F
Payroll
Records
PAYREP
The Cobol
Program
PRINTER
FILE
Payroll
Report
18
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PAYROLL-FILE ASSIGN TO DATABASE-PT001F
ORGANIZATION IS SEQUENTIAL.
As known
to the
Cobol
Program
Syntax can use up to 30 char names
Easier to maintain
As known
to the
AS400 File
System
AS400 system only 10
links internal cobol
structure to system
19
Select for a Database File
Select Product-File
Assign to disk-PRODPF.
Select Product-file
Assign to database-PRODPF
Access is Sequential.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PAYROLL-FILE ASSIGN TO DATABASE-PT001F
ORGANIZATION IS SEQUENTIAL.
•Data File = Collection of Records
•Each Record = One employee Info
•Records have same length (bytes)
•Records made up of fields
•Sequential means that records are
organized in arrival sequence
21
Select Statement for a Printer
(Spooled) File
Select Product-Report
assign to printer-qprint.
Select Product-Report
assign to printer-qsysprt.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PAYROLL-FILE ASSIGN TO DATABASE-PT001F
ORGANIZATION IS SEQUENTIAL.
SELECT PRINT-FILE
ASSIGN TO PRINTER.
•PRINT-FILE is just a user-defined name
•PRINTER is a device name
•The Cobol program will refer to PRINT -FILE
23
Select Statement for an
Externally Described Printer File
Select Product-Report
assign to formatfile-qsysprt.
Select Statement for a
Interactive-Display-File
Select Display-File
assign to workstation-PRDSPF
organization is transaction.
Select Display-File
assign to workstation-PRDSPF-SI
organization is transaction.
Data Division
Further divided into sections
Declare / define the structure of ALL
data objects used within a program.
Data Division
(Syntax)
[DATA DIVISION.]
[FILE-SECTION.]
All objects imported into the program from external (Global) sources.
[WORKING-STORAGE SECTION.]
All objects required local to the program.
[LINKAGE-SECTION.]
All parameter objects (fields) received from another programs or bidirectionally passed between programs.
Bringing the Outside IN
Working Storage Section
• Field or Variables needed by the program for
internal processing
• Field or variable is not part of any Input or Output.
• Some examples: counters, flags, edited fields
(masks), report lines, etc.
• Fields are defined the same way as in the file
section
• Value clause used to initialize variables or literals
(constants) used within the program.
OUR PRINTING LAYOUT
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
HEADER
Payroll Monthly List
Juan Barake
40 $ 400.00
Mary O'Brian
375 $3,125.00
Berns, Andre
275 $1,984.00
HEADER
RECORD
DETAIL
RECORD
30
WORKING-STORAGE SECTION.
01 HEADING-LINE.
05 FILLER
PIC X(12) VALUE 'EMPLOYEE... '.
05 FILLER
PIC X(110) VALUE SPACES.
01 DETAIL-LINE.
05 FILLER
05 DET-NAME
05 FILLER
05 DET-HOURS
05 FILLER
05 DET-PAY
05 FILLER
77 EOF-FLAG
PIC X(8) VALUE SPACES.
PIC X(25).
PIC XX
VALUE SPACES.
PIC ZZZ.
PIC XX
VALUE SPACES.
PIC $Z,ZZZ.99.
PIC X(92) VALUE SPACES.
PIC X
HEADING-LINE:
Temporary area
to hold the print
header.
DETAIL-LINE:
Temporary area
to hold the print
fields
VALUE SPACES.
EOF-FLAG:
Just a variable
used as a ‘loop
control’ Used
within the logic
of the program
31
Defining Variables
•
•
•
•
•
•
•
•
Zoned Decimals (or signed integers)
Packed Decimal
Alphabetic
Alphanumeric
Boolean
Dates
Time
TimeStamp
Variable Data vs Constant Data
• Variable Data Changes
• Constant Data doesn’t
• Figurative Constants
– ZERO, ZEROS, ZEROES
– SPACES
Data Division
(Syntax)
[DATA DIVISION.]
[FILE-SECTION.]
[FD nice-file-name]
[RECORD CONTAINS 99 CHARACTERS].
[01 record-name.]
[05 field-names PIC ????.]
[WORKING-STORAGE SECTION.]
[01 field-name PIC X(10).]
[LINKAGE-SECTION.]
[01 ws-prog-parameters.]
[05 ws-parm-1 pic x(5).]
[05 ws-param-2
pic 9(6).]
DATA DEFINITIONS
• Variable Names:
•1 to 30 characters
•Letters, digits, hyphen
•See rules in page 74 of your textbook
EMPNAME is valid
EMP NAME is invalid
EMP3NAME is valid
35
DATA DEFINITIONS
• Data can be either a Constant or a Variable
• Constant are known as Literals
• Variables are known as Identifiers or Fields
• Constants can be Numeric (1, 200, -100, 1.5)
• Constants can be Alphanumeric (“CBL344 Course”)
• Variables can be keywords (Cobol defined names such as
DATA) or they can be user-defined (user makes up the
name such as BALANCE)
36
File Section
• Define the files used in the program
– File Description
– Record Description
• Program Described vs Externally
Described.
File Section
FD (file declaration)
• Label Clause
– Not used often
– Transmitting Data
• Block Clause
– Optional
– I’ve never seen it used
File Section - FD
• Records Clause
– Optional
– Used to double check that the record format
File Section - Record Description
• Starting at an 01 level and the subsequent
field(s) detail(s) in each record
Data Subordination
DATA DIVISION.
FILE SECTION.
FD PAYROLL-FILE
RECORD CONTAINS 45 CHARACTERS
DATA RECORD IS EMPLOYEE-IN.
01 EMPLOYEE-IN.
05 EMP-NAME
05 EMP-HOURS
05 EMP-RATE
05 EMP-DEP
PIC X(25).
PIC 9(03).
PIC 99V9 USAGE COMP-3.
PIC X(15).
Level Numbers
indicate field
subordination
01 indicates the
top level
Located in pos 8
thru 11
41
The Data PICture or PIC
•Data content is internally represented by EBCDIC
(IBM internal representation of data equivalent to
ASCII)
•It uses a byte (8 bits) to represent a single digit, a single
letter, or any special character such as #
•See the EBCDIC table in page 19 of your textbook
•The content acceptable for a variable is defined by the
clause PICTURE or simply PIC
42
The Data PICture or PIC
• PICture describes occurrences of each character:
•Numeric are represented by 9
•Alphanumeric is represented by X
•Alphabetic is represented by A
•S represented the sign
•$ / - represent edited characters (for output)
43
DATA DIVISION.
FILE SECTION.
FD PAYROLL-FILE
RECORD CONTAINS 45 CHARACTERS
DATA RECORD IS EMPLOYEE-IN.
01 EMPLOYEE-IN.
05 EMP-NAME
05 EMP-HOURS
05 EMP-RATE
05 EMP-DEP
PIC X(25).
PIC 9(03).
PIC 99V9 USAGE COMP-3.
PIC X(15).
Level Numbers
indicate field
subordination
01 indicates the
top level
Located in pos 8
thru 11
44
Elements of Data Definition
DATA DIVISION.
FILE SECTION.
FD PAYROLL-FILE
RECORD CONTAINS 45 CHARACTERS
DATA RECORD IS EMPLOYEE-IN.
01 EMPLOYEE-IN.
05 EMP-NAME
05 EMP-HOURS
05 EMP-RATE
05 EMP-DEP
Level
Number
Variable
Name
PICture
Group
level
PIC X(25).
PIC 9(03).
PIC 99V9 USAGE COMP-3.
PIC X(15).
PICture
45
THE PRINTER LINE DEFINITION
DATA DIVISION.
FILE SECTION.
FD PAYROLL-FILE
RECORD CONTAINS 45 CHARACTERS
DATA RECORD IS EMPLOYEE-IN.
01 EMPLOYEE-IN.
05 EMP-NAME
05 EMP-HOURS
05 EMP-RATE
05 EMP-DEP
PIC X(25).
PIC 9(03).
PIC 99V9 USAGE COMP-3.
PIC X(15).
FD PRINT-FILE
RECORD CONTAINS 132 CHARACTERS
DATA RECORD IS PRINT-LINE.
01 PRINT-LINE
PIC X(132).
01 pr-header-line-1.
03 hd1-report name pic x(20).
03 filler
pic x(15).
03 hd2-date
pic 9999b99b99.
03 filler
pic x(15).
01 pr-detail-line.
03 filler
pic x(10).
03 dt1-quantity
pic z(5)9-.
03 filler
pic xxx.
03 dt1-descr
pic x(30).
etc
etc
Record formats
Record formats
Record formats
46
Optionally define the record format
structure Working-Storage
THE DATA DEFINITIONS
The Payroll File
EACH EMPLOYEE RECORD LAYOUT:
PT001F =
PAYROLL-FILE
Data
Field Buffer Buffer
Field Column
Field Type
Length Length Position
Usage Heading
EMPNAME CHAR
25 25
1
Both NAME
Field text . . . . . . . . . . . . . . . : NAME
Alternative name . . . . . . . . . . . . : PT001F_NAME
Coded Character Set Identifier . . . . . : 37
EMPHOUR ZONED
3 0
3
26
Both HOURS
Field text . . . . . . . . . . . . . . . : HOURS
Alternative name . . . . . . . . . . . . : PT001F_HOURS
EMPRATE PACKED
3 1
2
29
Both RATE
Field text . . . . . . . . . . . . . . . : RATE
Alternative name . . . . . . . . . . . . : PT001F_RATE
EMPDEP CHAR
15 15
31
Both DEPARTMENT
Field text . . . . . . . . . . . . . . . : DEPARTMENT
Alternative name . . . . . . . . . . . . : PT001F_DEPART
Coded Character Set Identifier . . . . . : 37
48
COPY
Importing DATA DEFINITIONS into your program
LIBRARY - PF
Spoolfile printout
Note: +’s on inserted lines
FFD
External data record format structure
Linkage Section
• Define Parameters
Variable Names
•
•
•
•
•
Up to 30 Characters
Letters, numbers and hypens (-)
No blanks
At least one letter
Not a COBOL Reserved Word (see text for
list of reserved words)
• Meaning full names please
Variable Name Examples
Variable Name
Cindy Laurin
BAC344
Zero
Sales%
SOL-IN
Correct?
PICture Clauses
(Elementary Items)
•
•
•
•
9 - Number
X – Alphanumeric
A - Alphabetic
V - Decimal Point
PACKED-DECIMAL = COMP-3
PIC Clauses
PIC 9(3)
PIC 9(3)V9(3)
PIC X(5)
PIC S99999 COMP-3
PIC 99999 COMP-3
PIC 999
Date, Time, & TimeStamp fields
01 Todays-date format of date.
01 Todays-time format of time.
01 Todays-timestamp format of timestamp.
Boolean Variables
01 IN99 pic 1.
PIC Clauses
(Group Items)
• Mix of Elementary Items.
• Used to break a variable into smaller
portions
PIC Clauses
(Group Item – Example)
01 Student-Number PIC 9(9).
01 Student-Number-Edited.
05 Student-Number-Part-1 PIC 9(3).
05 Student-Number-Part-2 PIC 9(3).
05 Student-Number-Part-3 PIC 9(3).
Picture Clause Review
• Define Variables
• Define how Variables are displayed
61
Editing Functions
Function
Character
Printing of a / as a separator
Printing of Decimal Point in an integer
Suppress Leading Zeros in an integer
Print a Dollar Sign in front of an integer
/
.
Z
$
Print a Comma in an integer
Printing of + or – signs
Printing of ‘Debit’ or ‘Credit’ symbols
Printing of Spaces as separators
,
+ or DB or CR
B
Printing of Zeros as separators
Print Leading asterix
0
*
62
Examples
Trans-Amount PIC 9(6)V999 Value 4565.78.
Report-Item
PIC 9(6)V999
PIC $999999V999
PIC $ZZZ,ZZZ.99
PIC $ZZZ,ZZZ.9
Edited Results
63
Examples
Trans-Amount PIC 9(6)V999 Value 4565.78.
Report-Item
PIC $ZZZ,ZZZ.99PIC $ZZZ,ZZZ.99CR
PIC $ZZZZZZB99
PIC $ZZZZZZ.99+
Edited Results
64
For Next Week
• Review Reserved words in Text
• Do your assignment!
Download