Sample Jol and JCL


Simplified Jol Scripting Language for Z/OS, TSO, Linux and Windows

Payroll: Job class C 1000 k;
Exec Validate Input.Trans, Trans.Action(+1); /* Validate Transations */
if Validate=0
then do;
    Sort transaction(+1) to Sorted.Trans.Actions(+1)
        Fields(10,10,CH,A);
    Exec Update Payroll.Master(0), Sorted.Trans.Action(+1),
        Payroll.Master(+1);
    If Update = 0
    then do;S
        Catalog Payroll.Master(+1), Sorted.Trans.Action(+1);
        Submit Job2;
    end;
end;
else Stop 'Error in PAYROLL Job';


________________________________

Equivalent Existing Job Control Language


//PAYROLL    JOB      CLASS=C,REGION=1000K
//VALIDATE   EXEC     PGM=VALIDATE
//SYSPRINT   DD       SYSOUT=*
//INTRANS    DD       DSN=INPUT.TRANS,DISP=SHR
//OUTTRANS   DD       DSN=TRANS.ACTIONS(+1),DISP=(NEW,PASS),
//                    DCB=(RECFM=VB,LRECL=200,BLKSIZE=13030),
//                    SPACE=(CYL,(10,10),RLSE),
//                    UNIT=SYSDA,VOL=SER=WORK01
//SORT       EXEC     PGM=SORT,COND=(VALIDATE,NE,0)
//SYSOUT     DD       SYSOUT=*
//SORTWK01   DD       UNIT=SYSDA,SPACE=(CYL,20)
//SORTWK02   DD       UNIT=SYSDA,SPACE=(CYL,20)
//SORTWK03   DD       UNIT=SYSDA,SPACE=(CYL,20)
//SORTIN     DD       DSN=TRANS.ACTIONS(+1),DISP=(SHR,PASS)
//SORTOUT    DD       DSN=SORTED.TRANS.ACTIONS(+1),
//                    DISP=(NEW,PASS),
//                    DCB=(RECFM=VB,LRECL=200,BLKSIZE=13030),
//                    SPACE=(CYL,(10,10),RLSE),
//                    UNIT=SYSDA,VOL=SER=WORK01
//SYSIN      DD   *
        SORT FIELDS=(10,10,CH,A)
//UPDATE     EXEC     PGM=UPDATE,COND=(VALIDATE,NE,0)
//SYSPRINT   DD       SYSOUT=*
//MASTIN     DD       DSN=PAYROLL.MASTER(0),DISP=SHR
//TRANS      DD       DSN=TRANS.ACTION(+1),DISP=(SHR,PASS)
//MASTOUT    DD       DSN=PAYROLL.MASTER(+1),DISP=(NEW,PASS),
//                    DCB=(RECFM=VB,LRECL=200,BLKSIZE=13030),
//                    SPACE=(CYL,(10,10),RLSE),
//                    UNIT=SYSDA,VOL=SER=WORK01
//CATLG      EXEC     PGM=IEFBR14,COND=(UPDATE,NE,0)
//DUMMY1     DD       DSN=PAYROLL.MASTER(+1),DISP=(SHR,CATLG)
//DUMMY2     DD       DSN=SORTED.TRANS.ACTIONS(+1),
//                    DISP=(SHR,CATLG)
//SUBMIT     EXEC     PGM=IEBGENER,COND=(UPDATE,NE,0)
//SYSPRINT   DD       SYSOUT=*
//SYSUT1     DD       DSN=SUBMIT.LIBRARY(JOB2),DISP=SHR
//SYSUT2     DD       SYSOUT=(*,INTRDR)
//SYSIN      DD       DUMMY
//ERRMSG     EXEC     PGM=SHOWERR,COND=(VALIDATE,EQ,0),
//           PARM='Error in PAYROLL Job'




Comments