JCL and Jol Comparison

 Simplified Jol/Oscar Language

 

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;

        Catalog Payroll.Master(+1),

        Sorted.Trans.Action(+1);

        Submit Job2;

    end;

end;

else Stop 'Error in PAYROLL Job';

 Existing IBM 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'