This is an example of JCL (and instream COBOL source program) prepared in a TSO text editor (ISPF) for submission to the Job Entry Subsystem (JES). This job uses a procedure named BCOB to do the compile and link step. The "go" step is coded after the compile and link is done. This JCL will be merged with the BCOB procedure JCL before being placed in the run queue for the mainframe. Example provided by Kevin Solomon. ---------------------------------------------------------------------------- //EW1PCTST JOB 33300,'EW1PCTST COBOL II', // CLASS=T,MSGCLASS=X,USER=KXS134 /*JOBPARM ROOM=VB01,TIME=1,LINES=99 //PROCSJCL JCLLIB ORDER=(SXS0.PR.YEAR2001.GLOBAL.PROCLIB) // EXEC PGM=BLOCKS,PARM='STATS/ŽDATE/ŽTIME' //STEPLIB DD DSN=RUSE.UTIL.LOAD,DISP=SHR //SYSPRINT DD SYSOUT=*,DCB=LINE121 //**** //* COMPILE STEP STARTS HERE //COMPILE EXEC BCOB, // CSECT=EW1BP50C, // CPARM='DATA(31)', // SYSIN='EW.BATCH01.SOURCE', // SYSLIB1='EW.ONLINE01.COPYLIB', // SYSLMOD='EW.BATCH01.LOAD' //COB.SYSIN DD * IDENTIFICATION DIVISION. PROGRAM-ID. EW1PCTST. AUTHOR. KEVIN SOLOMON. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FILE ASSIGN TO INRECS. SELECT OUT-FILE ASSIGN TO OUTRECS. DATA DIVISION. FILE SECTION. FD IN-FILE RECORDING MODE IS F RECORD CONTAINS 80 CHARACTERS BLOCK CONTAINS 0 RECORDS. 01 IN-REC PIC X(80). FD OUT-FILE RECORDING MODE IS F RECORD CONTAINS 40 CHARACTERS BLOCK CONTAINS 0 RECORDS. 01 OUT-REC PIC X(40). WORKING-STORAGE SECTION. 01 IN-RECORD. 05 IN-FIRST-20 PIC X(20). 05 OUT-MIDDLE PIC X(40). 05 IN-LAST-20 PIC X(20). 01 OUT-RECORD. 05 OUT-FIRST-20 PIC X(20). 05 OUT-LAST-20 PIC X(20). 01 WS-EOF PIC X VALUE "N". PROCEDURE DIVISION. 000-MAINLINE. OPEN INPUT IN-FILE OUTPUT OUT-FILE PERFORM 100-READ-NEXT UNTIL WS-EOF = "Y" CLOSE IN-FILE OUT-FILE STOP RUN. 100-READ-NEXT. READ IN-FILE INTO IN-RECORD AT END MOVE "Y" TO WS-EOF NOT AT END MOVE IN-FIRST-20 TO OUT-LAST-20 MOVE IN-LAST-20 TO OUT-FIRST-20 WRITE OUT-REC FROM OUT-RECORD END-READ. /* //* LINK EDIT STEP STARTS HERE //LKED.SYSLMOD DD DSN=EW.BATCH01.LOAD(EW1PCTST) //LKED.SYSIN DD * ENTRY EW1PCTST NAME EW1PCTST(R) /* //*--- //* GO STEP STARTS HERE //RUNPROG EXEC PGM=EW1PCTST //STEPLIB DD DSN=EW.BATCH01.LOAD,DISP=SHR //OUTRECS DD DSN=KXS134.EW1PCTST.FIVE,DISP=(NEW,CATLG), // UNIT=SYSDA,SPACE=(TRK,(1,1),RLSE) //INRECS DD * 11111111111111111111222222222222222222226666666666666666666666666666666666666666 AAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBB7777777777777777777777777777777777777777 33333333333333333333444444444444444444448888888888888888888888888888888888888888 CCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDD9999999999999999999999999999999999999999 44444444444444444444555555555555555555550000000000000000000000000000000000000000 /* //