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 BLKSIZEBlock Size and should be multiple of the record length DSORGDataset 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