Running a Simple Cobol Program - Enterprise Systems

advertisement
A Simple Cobol Example –
ISPF vs RDz
Enterprise Systems
1
Traditional ISPF
ISPF document
Job stream would include Cobol Program
wrapped with JCL
Likely in PDS named accountid.work.compiles as
extension was not critical
Job would be submitted
Would look for output in JES
TSO SDSF ST
Owner accountID to reduce list to your jobs
Put ? by appropriate entry
Put s by file(s) to review for errors
If error, then back to file, correct and repeat
process–(see ISPF Document)
Enterprise Systems
2
Cobol Example
Program reads a record from a file, selects
specific fields from the record and writes the line.
JCL matches system setup at the University of
Arkansas
Good example to illustrate application JCL
references to system resources like the Cobol
compiler and to data files
Enterprise Systems
3
Cobol Example (single job stream)
Enterprise Systems
4
Cobol Example (single job stream)
Enterprise Systems
5
Cobol Example
(single job stream)
ALL JCL statements must be in Upper Case
Three JCL statements
JOB – information related to the job to be run
EXEC – executes a program or a procedure
DD – data definition points to data and files
Example
//COBJOB JOB (COBOLPROG),'ACCTID',NOTIFY=ACCTID,
// CLASS=A,MSGLEVEL=(1,1),TIME=1,MSGCLASS=A
//STEP1 EXEC PROC=IGYWCLG
//COBOL.SYSIN DD *
…
Cobol Program with references to input (READER) and output (DISKFL1)
…
//GO.DISKFL1 DD DSN=ACCTID.WORK.OUT(COBOUT),DISP=SHR
//GO.READER DD *
…. Data
//
Enterprise Systems
6
Cobol Example
(single job stream)
EXEC statement
//STEP1 EXEC PROC=IGYWCLG
Executes a procedure name IGYWCLG
This procedure has all the programs needed
to compile, link needed files to create an
object module and go—run the program.
The CLG ending is CompileLinkGo
Enterprise Systems
7
Cobol Example
(single job stream)
DD statements
//STEP1 EXEC PROC=IGYWCLG
//COBOL.SYSIN DD *
IDENTIFICATION DIVISION.
…..Rest of Cobol program
Enterprise Systems
8
Cobol Example
(single job stream)
DD statements
The DD statement below allows the Cobol program to
abstract the name used in the program. The
READER points to a DD statement to be used for
input
SELECT CARD-IN
ASSIGN TO UT-S-READER.
//*
//GO.READER DD *
ANDERSON ESSABIA ANNIECE
...
XXXXXXXXX ISYS4283 002 ….
...
/*
//
Enterprise Systems
9
Cobol Example
(single job stream)
DD statements
The DD statement below allows the Cobol program to
abstract the name used in the program. The
DISKFL1 points to a DD statement to be used for
output
SELECT DISK-FILE1 ASSIGN TO UT-S-DISKFL1
...
...
//GO.DISKFL1 DD DSN=ACCTID.WORK.OUT(COBOUT),DISP=SHR,
// VOL=SER=DB1469,SPACE=(CYL,(1,1,1)),UNIT=SYSDA,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=6400,DSORG=PO)
Enterprise Systems
10
Cobol Example
(single job stream)
DD statements
The DD statement below allows the Cobol program to
abstract the name used in the program. The
DISKFL1 points to a DD statement to be used for
output
SELECT DISK-FILE1 ASSIGN TO UT-S-DISKFL1
...
...
//GO.DISKFL1 DD DSN=ACCTID.WORK.OUT(COBOUT),DISP=SHR,
// VOL=SER=DB1469,SPACE=(CYL,(1,1,1)),UNIT=SYSDA,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=6400,DSORG=PO)
Enterprise Systems
11
Cobol Example
(single job stream)
The DD Parameter
DD Parameter
Meaning
DISP(MOD,KEEP)
DISP  Disposition. Relates what is to be done
with the PDS. In this case, it is modify and keep.
There are many possibilities but can you guess what
NEW, CATLG and OLD, DELETE do?
VOL=SER=DB1469
VOL  Volume, SER  SERIAL. This is analogous
to a letter for a disk drive on your PC. TEMP91 is
The name of the disk.
SPACE=(CYL,(1,1,1))
Defines space for the file in terms of cylinders—you
could also use tracks
UNIT=SYSDA
SYSDA  Systems Direct Access and means a disk
DCB=(RECFM=FB..
DCB  Data Control Block, LRECL  Logical
Record Length BLKSIZEBlock Size and should be
multiple of the record length DSORGDataset
Organization – Partitioned Organization
Enterprise Systems
12
Cobol Example
(single job stream)
Submit Job
TSO SDSF ST
OWNER acctid
Enterprise Systems
13
Cobol Example
(single job stream)
Review JESYSMS
Place letter “s” to left of JESYSMS
Enterprise Systems
14
Cobol Example
(single job stream)
Find COND CODEs—hopefully, all zero
Enterprise Systems
15
Cobol Example
(single job stream)
Locate error
If error is in compile, then review Cobol
Correction requires moving around to the
correct file to make the corrections and then
resubmittig
Enterprise Systems
16
RDz
This same job stream can be submitted within
RDz in tack if placed in a PDS with x.x.JCL
However, take advantage of RDz color coded
syntax checking by putting Cobol, JCL, etc. into
appropriate PDS,s recognized by the RDz
editors
Suggested PDSs
ACCTID.WORK.COBOL
ACCTID.WORK.JCL
ACCTID.WORK.Data
Submitted job and JES output in same area
If error, can correct with RDz editor—rerun
No navigation to other interfaces required
Enterprise Systems
18
Rational Developer for System z (covered later)

Programmer can simultaneously:
 Debug a COBOL Program
 Create a data table in DB2
 Browse local files and PDS
 Run SQL against DB2
 Check their JES output
Rational Developer uses
Views and Perspectives to
Organize Development
Work
Cobol Example (JES)
Enterprise Systems
20
Cobol Example (JES)
(Error)
MOE instead of MOVE— open SYSPRINT file
Find error in editor
000055
MOE CRD-PWD TO CRD-OUT-PWD.
==000055==> IGYPS2072-S "MOE" was invalid.
verb
Enterprise Systems
Skipped to the next
21
Cobol Example
(Using PDSs to Advantage)
JCL goes into ACCTID.WORK.JCL
COBOL goes into ACCTID.WORK.COBOL
Input data goes into ACCTID.WORK.DATA
RDz editors sense type of file and provides
color-coded syntax checking
• Right-click, select submit on the JCL to execute
job
• Job will be in JES for viewing
•
•
•
•
Enterprise Systems
22
Cobol Example
(JCL)
//COBJOB JOB (COBOLPROG),'DOUGLAS',NOTIFY=DOUGLAS,
// CLASS=A,MSGLEVEL=(1,1),TIME=1,MSGCLASS=A
//STEP1 EXEC PROC=IGYWCLG
//COBOL.SYSIN DD DSN=DOUGLAS.WORK.COBOL(SIMPLEC),DISP=SHR
//GO.DISKFL1 DD DSN=DOUGLAS.WORK.OUT(COBOUT),DISP=SHR
//GO.READER DD DSN=DOUGLAS.WORK.DATA(SMPLDATA),DISP=(OLD,KEEP)
Enterprise Systems
23
Cobol Example
(Data)
Enterprise Systems
24
Cobol Example
(Output)
Enterprise Systems
25
Rational Developer for z
Integrated Development Environment (IDE)
GUI based
Multiple views and perspectives for
multitasking
Immediate feedback on syntax
Helps students understand interrelationships in the z environment
26
Cobol Example
(single job stream)
ALL JCL statements must be in Upper Case
Three JCL statements
JOB – information related to the job to be run
EXEC – executes a program or a procedure
DD – data definition points to data and files
Example
//COBJOB JOB (COBOLPROG),'ACCTID',NOTIFY=ACCTID,
// CLASS=A,MSGLEVEL=(1,1),TIME=1,MSGCLASS=A
//STEP1 EXEC PROC=IGYWCLG
//COBOL.SYSIN DD *
…
Cobol Program with references to input (READER) and output (DISKFL1)
…
//GO.DISKFL1 DD DSN=ACCTID.WORK.OUT(COBOUT),DISP=SHR
//GO.READER DD *
…. Data
//
Enterprise Systems
27
Download