# : : generated from jcl.rt by mktest : : # # regression tests for the jcl command UNIT jcl TEST 01 basics EXEC -nvw -m- INPUT - $'//TEST JOB TEST job comment //SET1 SET A=123,B=456,C=789 default values //STEP1 EXEC PGM=IEBGENER exec comment //SYSIN DD TEST.&A..&B..&C..TEST, dd comment // LRECL=80 continuation comment //STEP2 EXEC PGM=IEFBR14 pgm comment //SYSIN DD * here //* comment comment //STEP3 EXEC PGM=TEST pgm comment' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEBGENER < TEST.123.456.789.TEST code=$? : STEP2 STEP=STEP2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 <<\'/*\' here /* code=$? : STEP3 STEP=STEP3 \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST code=$?' EXEC -nvw -m- INPUT - $'//NNNNNNNN JOB \'#BOZO\',CLASS=C, // MSGCLASS=8,REGION=4096K //MMMMMMMM EXEC PGM=TEST //SYSIN DD DSN=IN, // DISP=SHR * XXX XXX XXXX //SYSOUT DD DSN=FOO$OUT, // DISP=(NEW,CATLG), * YYYYYYYY // DCB=(RECFM=FB,BLKSIZE=0,LRECL=74),UNIT=(DISK,16) //TEMP1 DD DSN=FOO$TMP, // DISP=(NEW,CATLG) * ZZZZZZZZ //TEMP2 DD DSN=\'BAR TMP\', // DISP=(MOD,CATLG) * ZZZZZZZZ //SYSERR DD DSNAME=ERR' OUTPUT - $': JOB NNNNNNNN export JCL_AUTO_JOBNAME=NNNNNNNN code=0 : MMMMMMMM STEP=MMMMMMMM \\ TEMP1=FOO\\$TMP \\ TEMP2=+"BAR TMP" \\ DDIN=\'\' \\ DDOUT=\'TEMP1 TEMP2\' \\ TEST < IN > FOO\\$OUT 2> ERR code=$?' EXEC -nvw -m- INPUT - $'//NNNNNNNN JOB \'#BOZO\',CLASS=C, // MSGCLASS=8,REGION=4096K //MMMMMMMM EXEC PGM=TEST //SYSIN DD DSN=IN, // DISP=SHR * XXX XXX XXXX //OUTPUT DD DSN=OUT, // DISP=(MOD,CATLG), * YYYYYYYY // DCB=(RECFM=FB,BLKSIZE=0,LRECL=74),UNIT=(DISK,16) //SYSERR DD DSNAME=ERR' OUTPUT - $': JOB NNNNNNNN export JCL_AUTO_JOBNAME=NNNNNNNN code=0 : MMMMMMMM STEP=MMMMMMMM \\ OUTPUT=+OUT \\ DDIN=\'\' \\ DDOUT=\'OUTPUT\' \\ TEST < IN 2> ERR code=$?' TEST 02 continuation EXEC -nvw -m- INPUT - $'//TEST JOB //S1 EXEC PGM=TEST //D1 DD DSNAME=SWITCH.LEVEL18.GROUP12,UNIT=3350, // VOLUME=335023,SPACE=(TRK,(80,15)),DISP=(,PASS) //D2 DD DSNAME=INDS,DISP=OLD,CHKPT=EOV, MY INPUT DATA SET // UNIT=SYSSQ,VOLUME=SER=(TAPE01,TAPE02,TAPE03) //S2 EXEC PGM=BILLING,COND.PAID=((20,LT),EVEN), // COND.LATE=(60,GT,FIND), // COND.BILL=((20,GE),(30,LT,CHGE)) THIS STATEMENT CALLS X // THE BILLING PROCEDURE AND SPECIFIES RETURN CODE TESTS X // FOR THREE PROCEDURE STEPS //* 10 20 30 40 50 60 70 //*4567890123456789012345678901234567890123456789012345678901234567890123456'\ $'7890 //S3 EXEC PGM=IEFBR14,PARM=\'THIS IS A LONG PARAMETER WITHIN APOST // ROPHES, CONTINUED IN COLUMN 16 OF THE NEXT RECORD\'' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ D1=SWITCH.LEVEL18.GROUP12 \\ D2=INDS \\ DDIN=\'D1 D2\' \\ DDOUT=\'\' \\ TEST code=$? : S2 STEP=S2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ BILLING COND.BILL=\'((20,GE),(30,LT,CHGE))\' COND.LATE=\'(60,GT,FIND)\' COND'\ $'.PAID=\'((20,LT),EVEN)\' code=$? : S3 STEP=S3 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 \'THIS IS A LONG PARAMETER WITHIN APOSTROPHES, CONTINUED IN COLUMN 1'\ $'6 OF THE NEXT RECORD\' code=$?' EXEC -nvw -m- INPUT - $'//TEST JOB //* 10 20 30 40 50 60 70 //*4567890123456789012345678901234567890123456789012345678901234567890123456'\ $'7890 // SET AAA= XXXXXXXX YYYYYYY # // SET BBB=bbb XXXXXXXX YYYYYYY # // SET CCC=ccc XXXXXXXX YYYYYYY # // SET DDD=ddd XXXXXXXX YYYYYYY # // SET EEE=eee XXXXXXXX YYYYYYY # // EXEC PGM=ECHO,PARM=&AAA.&BBB.&CCC.&DDD.&EEE.' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO \'bbbccc&DDD.&EEE.\' code=$?' ERROR - $'jcl: line 9: warning: &DDD: undefined variable jcl: line 9: warning: &EEE: undefined variable' TEST 03 quoting EXEC -nvw -m- INPUT - $'//* TEST //TEST PROC A=,B=\'\',C=\'\'\'\'\'c\'\'\'\'\',D=\'o\'\'\'\'k\',E=O\'\''\ $'\'\'\'\'K //STEP EXEC PGM=TEST //SYSIN DD \':A=&A:B=&B:C=&C:D=&D:E=&E:&&A:&&Z:\'' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP STEP=STEP \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST < ":A=:B=:C=\'c\':D=o\'k:E=O\'K:&&A:&&Z:" code=$?' EXEC -nvw -m- INPUT - $'//TEST JOB\n//STEP EXEC PGM=TEST,PARM=(\'FILE=AAA,LIST=Y,,EMPTY\')' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP STEP=STEP \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST FILE=AAA,LIST=Y,,EMPTY code=$?' EXEC -nvw -m- INPUT - $'//ABC JOB // SET VAR=value //PDQ EXEC PGM=XYZ,COND=(4,LT), // PARM=(\'$SKIP=-1,VAR=&VAR\')' OUTPUT - $': JOB ABC export JCL_AUTO_JOBNAME=ABC code=0 : PDQ STEP=PDQ \\ DDIN=\'\' \\ DDOUT=\'\' \\ XYZ \'$SKIP=-1,VAR=value\' code=$?' TEST 04 'PROC variable scope' EXEC -nvw -m- INPUT - $'//EXAMPLE PROC SYM1=\'What\'\'\'\'s up, Doc?\',SYM2=(DEF),SYM3=&&&&TEMP1, // SYM4=\'&&TEMP2\',SYM5=&&TEMP3,TEMP3=TEMPNAME, // SYM6=&TEMP3 //S1 EXEC PGM=WTO,PARM=\'&SYM1\',ACCT=&SYM2 //DD1 DD DSN=&SYM3,UNIT=SYSDA,SPACE=(TRK,(1,1)) //DD2 DD DSN=&SYM4,UNIT=SYSDA,SPACE=(TRK,(1,1)) //DD3 DD DSN=&SYM5,UNIT=SYSDA,SPACE=(TRK,(1,1)) //DD4 DD DSN=&SYM6,UNIT=SYSDA,SPACE=(TRK,(1,1)) // PEND' OUTPUT - $': JOB EXAMPLE export JCL_AUTO_JOBNAME=EXAMPLE code=0 trap \'code=$?; rm -rf ${TMPDIR:-/tmp}/job.EXAMPLE.$$.*; exit $code\' 0 1 2 : S1 STEP=S1 \\ DD1=${TMPDIR:-/tmp}/job.EXAMPLE.$$.TEMP1 \\ DD2=${TMPDIR:-/tmp}/job.EXAMPLE.$$.TEMP2 \\ DD3=${TMPDIR:-/tmp}/job.EXAMPLE.$$.TEMP3 \\ DD4=${TMPDIR:-/tmp}/job.EXAMPLE.$$.TEMP3 \\ DDIN=\'DD1 DD2 DD3 DD4\' \\ DDOUT=\'\' \\ WTO $\'What\\\'s up, Doc?\' ACCT=\'(DEF)\' code=$?' ERROR - 'jcl: line 3: warning: &TEMP3: undefined variable' EXEC -nvw -m- INPUT - $'//TEST01 JOB TEST //SET01 SET A=A0,B=B0 //* //STEP01 EXEC PGM=TEST01 //SYSIN DD TEST.&A..&B..&C..TEST01 //* //PROC1 PROC A=A1,C=C1 //STEP11 EXEC PROC=PROC2,A=A2,B=B2 //STEP12 EXEC PGM=TEST12 //SYSIN DD TEST.&A..&B..&C..TEST12 // PEND //* //PROC2 PROC //STEP21 EXEC PGM=TEST21 //SYSIN DD TEST.&A..&B..&C..TEST21 // PEND //* //STEP02 EXEC PROC=PROC1,A=,C=C4 //* //STEP03 EXEC PGM=TEST03 //SYSIN DD TEST.&A..&B..&C..TEST02 //*' OUTPUT - $': JOB TEST01 export JCL_AUTO_JOBNAME=TEST01 code=0 : STEP01 STEP=STEP01 \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST01 < "TEST.A0.B0.&C..TEST01" code=$? : STEP02 PROC PROC1 : STEP11 PROC PROC2 : STEP21 STEP=STEP21 \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST21 < TEST.A2.B2.C4.TEST21 code=$? : STEP12 STEP=STEP12 \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST12 < TEST..B0.C4.TEST12 code=$? : STEP03 STEP=STEP03 \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST03 < "TEST.A0.B0.&C..TEST02" code=$?' ERROR - $'jcl: line 5: warning: &C: undefined variable jcl: line 21: warning: &C: undefined variable' TEST 05 references EXEC -nvw -m- INPUT - $'//JOB1 JOB TEST //STEPA EXEC PGM=TEST //DD1 DD DSNAME=REPORT //DD2 DD DSN=TABLE //DD3 DD DSNAME=*.DD1' OUTPUT - $': JOB JOB1 export JCL_AUTO_JOBNAME=JOB1 code=0 : STEPA STEP=STEPA \\ DD1=REPORT \\ DD2=TABLE \\ DD3=REPORT \\ DDIN=\'DD1 DD2 DD3\' \\ DDOUT=\'\' \\ TEST code=$?' EXEC -nvw -m- REF=X INPUT - $'//JOB5 JOB TEST //AHA EXEC PGM=TEST,PARM=AHA //PROC1 PROC N=1 //PSTEP1 EXEC PGM=TEST,PARM=01 //DS1 DD DSNAME=DATA1 //PSTEP2 EXEC PGM=TEST,PARM=02 //DS2 DD DSNAME=DATA2 // PEND //CALLER EXEC PROC=PROC1 //REF1 DD DSNAME=&REF..CALLER.PSTEP2.DS2 //NEXT EXEC PGM=TEST,PARM=03 //REF2 DD DSNAME=&REF..CALLER.PSTEP1.DS1' OUTPUT - $'export REF=X : JOB JOB5 export JCL_AUTO_JOBNAME=JOB5 code=0 : AHA STEP=AHA \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST AHA code=$? : CALLER PROC PROC1 : PSTEP1 STEP=PSTEP1 \\ DS1=DATA1 \\ DDIN=\'DS1\' \\ DDOUT=\'\' \\ TEST 01 code=$? : PSTEP2 STEP=PSTEP2 \\ DS2=DATA2 \\ DDIN=\'DS2\' \\ DDOUT=\'\' \\ TEST 02 code=$? : NEXT STEP=NEXT \\ REF2=X.CALLER.PSTEP1.DS1 \\ DDIN=\'REF2\' \\ DDOUT=\'\' \\ TEST 03 code=$?' EXEC -nvw -m- REF='*' OUTPUT - $'export REF="*" : JOB JOB5 export JCL_AUTO_JOBNAME=JOB5 code=0 : AHA STEP=AHA \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST AHA code=$? : CALLER PROC PROC1 : PSTEP1 STEP=PSTEP1 \\ DS1=DATA1 \\ DDIN=\'DS1\' \\ DDOUT=\'\' \\ TEST 01 code=$? : PSTEP2 STEP=PSTEP2 \\ DS2=DATA2 \\ DDIN=\'DS2\' \\ DDOUT=\'\' \\ TEST 02 code=$?' ERROR - $'jcl: line 10: warning: PSTEP2.DS2: DD not defined jcl: line 12: CALLER: step back reference not supported' EXIT 1 EXEC -nvw -m- INPUT - $'//JOB2 JOB TEST //STEP1 EXEC PGM=TEST //DDA DD DSNAME=D58.POK.PUBS01 //STEP2 EXEC PGM=TEST //DDB DD DSNAME=*.STEP1.DDA' OUTPUT - $': JOB JOB2 export JCL_AUTO_JOBNAME=JOB2 code=0 : STEP1 STEP=STEP1 \\ DDA=D58.POK.PUBS01 \\ DDIN=\'DDA\' \\ DDOUT=\'\' \\ TEST code=$?' ERROR - 'jcl: line 5: STEP1: step back reference not supported' TEST 06 'nested procedure calls' EXEC -nvw -m- INPUT - $'//JOB1 JOB NEST,TEST //C PROC //CS1 EXEC PGM=GHI // PEND //B PROC //BS1 EXEC PROC=C //BS2 EXEC PGM=DEF // PEND //A PROC //AS1 EXEC PROC=B //AS2 EXEC PGM=ABC // PEND //STEP1 EXEC PROC=A //STEP2 EXEC PGM=JKL' OUTPUT - $': JOB JOB1 export JCL_AUTO_JOBNAME=JOB1 code=0 : STEP1 PROC A : AS1 PROC B : BS1 PROC C : CS1 STEP=CS1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ GHI code=$? : BS2 STEP=BS2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ DEF code=$? : AS2 STEP=AS2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ ABC code=$? : STEP2 STEP=STEP2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ JKL code=$?' EXEC -nvw -m- INPUT - $'//JOBA JOB ... //INSTREAM PROC LOC=POK //PSTEP EXEC PGM=WRITER //DSA DD SYSOUT=A,DEST=&LOC // PEND //CALLER EXEC INSTREAM,LOC=NYC' OUTPUT - $': JOB JOBA export JCL_AUTO_JOBNAME=JOBA code=0 : CALLER PROC INSTREAM : PSTEP STEP=PSTEP \\ DDIN=\'\' \\ DDOUT=\'\' \\ WRITER code=$?' EXEC -nvw -m- INPUT - $'//JOBB JOB ... //INSTREAM PROC LOC=POK,NUMBER=3350 //PSTEP EXEC PGM=TEST //PIN DD DSNAME=REPORT,DISP=(OLD,KEEP),UNIT=&NUMBER //POUT DD SYSOUT=A,DEST=&LOC // PEND //CALLER EXEC PROC=INSTREAM,NUMBER=,LOC=STL //PSTEP.INDATA DD * (data) /*' OUTPUT - $': JOB JOBB export JCL_AUTO_JOBNAME=JOBB code=0 : CALLER PROC INSTREAM : PSTEP STEP=PSTEP \\ PIN=REPORT \\ DDIN=\'PIN\' \\ DDOUT=\'\' \\ TEST code=$?' EXEC -nvw -m- INPUT - $'//TEST JOB //TESTJCL PROC //STEP1 EXEC TESTJCL1 // PEND //TESTJCL1 PROC //STEP2 EXEC PGM=IEFBR14,PARM=&PVAL //SYSUDUMP DD SYSOUT=A // PEND //RUNIT EXEC TESTJCL,PVAL=EXEC0' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : RUNIT PROC TESTJCL : STEP1 PROC TESTJCL1 : STEP2 STEP=STEP2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 EXEC0 code=$?' TEST 07 'DD override' EXEC -nvw -m- INPUT - $'//JOB1 JOB //* Procedure C: //C PROC //CS1 EXEC PGM=CCC //CS1DD1 DD DSNAME=A.B.C,DISP=SHR //CS1DD2 DD SYSOUT=A // PEND //* Procedure B: //B PROC //BS1 EXEC PROC=C //CS1.CS1DD1 DD DSNAME=X.Y.Z This statement is a valid //* override of procedure C, stepCS1 //* for DD CS1DD1 //* //CS1.CS1DD3 DD SYSOUT=A This statement is a valid //* addition to procedure C, step CS1 //BS2 EXEC PGM=BBB //BS2DD1 DD DSNAME=E,DISP=SHR // PEND //* Procedure A: //A PROC //AS1 EXEC PROC=B //BS2.BS2DD2 DD DSNAME=G,DISP=SHR This statement is a valid //* addition to procedure B, step BS2 //AS2 EXEC PGM=AAA //AS2DD1 DD DSNAME=E,DISP=SHR // PEND //* Job Stream: //STEP1 EXEC PROC=A //AS2.AS2DD2 DD DSNAME=G,DISP=SHR This statement is a valid //* addition to procedure A, step AS2 //STEP2 EXEC PGM=IEFBR14' OUTPUT - $': JOB JOB1 export JCL_AUTO_JOBNAME=JOB1 code=0 : STEP1 PROC A : AS1 PROC B : BS1 PROC C : CS1 STEP=CS1 \\ CS1DD1=X.Y.Z \\ DDIN=\'CS1DD1\' \\ DDOUT=\'\' \\ CCC code=$? : BS2 STEP=BS2 \\ BS2DD1=E \\ BS2DD2=G \\ DDIN=\'BS2DD1 BS2DD2\' \\ DDOUT=\'\' \\ BBB code=$? : AS2 STEP=AS2 \\ AS2DD1=E \\ AS2DD2=G \\ DDIN=\'AS2DD1 AS2DD2\' \\ DDOUT=\'\' \\ AAA code=$? : STEP2 STEP=STEP2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- INPUT - $'//JOB1 JOB //CS1 EXEC PGM=CCC //CS1DD1 DD DSNAME=X.Y.Z,DISP=SHR //* //CS1DD2 DD SYSOUT=A //CS1DD3 DD SYSOUT=A //* //BS2 EXEC PGM=BBB //BS2DD1 DD DSNAME=E,DISP=SHR //BS2DD2 DD DSNAME=G,DISP=SHR //* //AS2 EXEC PGM=AAA //AS2DD1 DD DSNAME=E,DISP=SHR //AS2DD2 DD DSNAME=G,DISP=SHR //STEP2 EXEC PGM=IEFBR14' OUTPUT - $': JOB JOB1 export JCL_AUTO_JOBNAME=JOB1 code=0 : CS1 STEP=CS1 \\ CS1DD1=X.Y.Z \\ DDIN=\'CS1DD1\' \\ DDOUT=\'\' \\ CCC code=$? : BS2 STEP=BS2 \\ BS2DD1=E \\ BS2DD2=G \\ DDIN=\'BS2DD1 BS2DD2\' \\ DDOUT=\'\' \\ BBB code=$? : AS2 STEP=AS2 \\ AS2DD1=E \\ AS2DD2=G \\ DDIN=\'AS2DD1 AS2DD2\' \\ DDOUT=\'\' \\ AAA code=$? : STEP2 STEP=STEP2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- INPUT - $'//TEST JOB VER=0 //SUB PROC VER=1 //S1 EXEC PGM=TEST //S1D1 DD DSN=O1.&VER..DAT //S1D2 DD DSN=O2.&VER..DAT // PEND //MAIN1 EXEC PROC=SUB //S1.S1D1 DD DSN=N1.&VER..DAT //S1.S1D3 DD DSN=N3.&VER..DAT' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : MAIN1 PROC SUB : S1 STEP=S1 \\ S1D1=N1.1.DAT \\ S1D2=O2.1.DAT \\ S1D3=N3.1.DAT \\ DDIN=\'S1D1 S1D2 S1D3\' \\ DDOUT=\'\' \\ TEST code=$?' EXEC -nvw -m- INPUT - $'//TEST JOB //SUB PROC VER=1 //S1 EXEC PGM=TEST //S1D1 DD DSN=O1.&VER..DAT //S1D2 DD DSN=O2.&VER..DAT // PEND //MAIN1 EXEC PROC=SUB //S1.S1D1 DD DSN=N1.&VER..DAT //S1.S1D3 DD DSN=N3.&VER..DAT' TEST 08 syntax EXEC -nvw -m- INPUT - $'//TEST JOB BAD //SET1 SET VAL1=\'ABC,\',VAL2=DEF,NULLSYM=\'\' //S1 EXEC PGM=IEFBR14,PARM=&VAL1 // TIME=30 //S2 EXEC PGM=IEFBR14,PARM=&VAL2 // TIME=60 //S3 EXEC PGM=IEFBR14,PARM=&VAL1 // &NULLSYM' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 ABC TIME=30 code=$? : S2 STEP=S2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 DEF code=$?' ERROR - $'jcl: line 6: warning: TIME: unknown OP jcl: line 8: unexpected EOF in continuation' EXIT 1 EXEC -nvw -m- INPUT - $'//TEST JOB // SET QUOTE=\'\'\'\' //S1 EXEC PGM=IEFBR14,PARM="E.ABC DEF"E //DD1 DD DUMMY' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ DD1=/dev/null \\ DDIN=\'DD1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' ERROR - $'jcl: line 3: unbalanced \'...\'' EXEC -nvw -m- INPUT - $'//TEST JOB NOPARM // SET CONT=\' \',T=\'(30,0)\' //S1 EXEC PGM=IEFBR14&CONT.PARM=\'ABC DEF\',TIME=&T' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' ERROR - EXIT 0 EXEC -nvw -m- INPUT - $'//TEST JOB PARM // SET CONT=\',\',T=\'(30,0)\' //S1 EXEC PGM=IEFBR14&CONT.PARM=\'ABC DEF\',TIME=&T' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 \'ABC DEF\' TIME=\'(30,0)\' code=$?' EXEC -nvw -m- INPUT - $'//TEST JOB PARM //TPROC PROC //STEP1 EXEC PGM=IEFBR14,PARM=&INPUT&XXX // PEND //STEP2 EXEC PROC=TPROC,XXX=VALUE' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP2 PROC TPROC : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 \'&INPUTVALUE\' code=$?' ERROR - 'jcl: "TPROC", line 2: warning: &INPUT: undefined variable' TEST 09 'substitution subterfuge' EXEC -nvw -m- INPUT - $'//TEST JOB //TESTPROC PROC A=IMB406,B=ABLE,C=3330,D=WXYZ1, // E=OLD,F=TRK,G=\'10,10,1\' //STEP EXEC PGM=&A //DD1 DD DSNAME=&B,UNIT=&C,VOLUME=SER=&D,DISP=&E, // SPACE=(&F,(&G)) // PEND //CALLER1 EXEC PROC=TESTPROC,A=IEFBR14,B=BAKER,E=(NEW,KEEP) //CALLER2 EXEC PROC=TESTPROC,A=IEFBR14,B=,C=3350,D=,E=' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : CALLER1 PROC TESTPROC : STEP [[ ! -d BAKER && ! -f BAKER ]] && mkdir -p BAKER STEP=STEP \\ DD1=BAKER \\ DDIN=\'\' \\ DDOUT=\'DD1\' \\ IEFBR14 code=$? : CALLER2 PROC TESTPROC : STEP STEP=STEP \\ DD1= \\ DDIN=\'DD1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' TEST 10 'path prefix maps' EXEC -r -m- -m t.map AAA.BBB.CCC.DDD02 P.D.CCC.DDD ..CCC.DDD.1 A.B.C.D INPUT t.map $'map\t*.*.CCC.DDD\t\tHIT-' OUTPUT - $'HIT-02\nHIT-\nHIT-.1\nA.B.C.D' EXEC -r -m- -m t.map AAA.BBB.CCC.DDD02 P.D.CCC.DDD ..CCC.DDD.1 A.B.C.D INPUT t.map $'set\t%%CYCLE=123\nmap\t*.*.CCC.DDD\t\tHIT-${%%CYCLE}.${JCL_AUTO_CYCLE}' OUTPUT - $'HIT-123.12302\nHIT-123.123\nHIT-123.123.1\nA.B.C.D' EXEC -r -m- -m t.map %%CYCLE=789 AAA.BBB.CCC.DDD02 P.D.CCC.DDD ..CCC.DDD.1 A.B.C.D OUTPUT - $'HIT-789.78902\nHIT-789.789\nHIT-789.789.1\nA.B.C.D' EXPORT JCL_AUTO_CYCLE=789 EXEC -r -m- -m t.map AAA.BBB.CCC.DDD02 P.D.CCC.DDD ..CCC.DDD.1 A.B.C.D OUTPUT - $'HIT-123.12302\nHIT-123.123\nHIT-123.123.1\nA.B.C.D' EXEC -i -r -m- -m t.map AAA.BBB.CCC.DDD02 P.D.CCC.DDD ..CCC.DDD.1 A.B.C.D OUTPUT - $'HIT-789.78902\nHIT-789.789\nHIT-789.789.1\nA.B.C.D' EXEC -r -m- -m t.map AAA.BBB.CCC.DDD02 P.D.CCC.DDD ..CCC.DDD.1 A.B.C.D INPUT t.map $'set\t--import\nset\t%%CYCLE=123\nmap\t*.*.CCC.DDD\t\tHIT-${%%CYCLE}.${JCL_AUTO_CYCLE}' EXEC -nvw -m- -m t.map INPUT - $'//TEST JOB MAP TEST //S1 EXEC PGM=IEFBR14 //S1D1 DD A.B.C.Z abc.Z //S1D2 DD A.B.Z ab.Z //S1D3 DD A.C.Z a.C.Z //S1D4 DD A.Z a.Z //S1D5 DD Z Z //S1D6 DD A.Z a.Z //S1D7 DD A.C.Z a.C.Z //S1D8 DD A.B.Z ab.Z //S1D9 DD A.B.C.Z abc.Z' INPUT t.map $'map\tA.B.C\t\tabc\nmap\tA.B\t\tab\t%2\nmap\tA\t\ta\t%1\nmap\t""\t\tx' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ S1D1=abc.Z \\ S1D2=ab.Z%2 \\ S1D3=a.C.Z%1 \\ S1D4=a.Z%1 \\ S1D5=xZ \\ S1D6=a.Z%1 \\ S1D7=a.C.Z%1 \\ S1D8=ab.Z%2 \\ S1D9=abc.Z \\ DDIN=\'S1D1 S1D2 S1D3 S1D4 S1D5 S1D6 S1D7 S1D8 S1D9\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -m t.map INPUT t.map $'map\tA.B.C\t\tabc\nmap\tA.B\t\tab\t%2\nmap\tA\t\ta\t%1\nmap\t*\t\t/dev/null' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ S1D1=abc.Z \\ S1D2=ab.Z%2 \\ S1D3=a.C.Z%1 \\ S1D4=a.Z%1 \\ S1D5=/dev/null \\ S1D6=a.Z%1 \\ S1D7=a.C.Z%1 \\ S1D8=ab.Z%2 \\ S1D9=abc.Z \\ DDIN=\'S1D1 S1D2 S1D3 S1D4 S1D5 S1D6 S1D7 S1D8 S1D9\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -k INPUT - $'//TEST JOB TEST //S1 EXEC PGM=IEFBR14 //S1D1 DD DSN=A.B.C,DCB=(RECFM=FB,LRECL=123) //S1D2 DD DSN=A.B.Q,DISP=(NEW,CATLG,CATLG),DCB=(RECFM=FB,LRECL=6001) //S2 EXEC PGM=IEFBR14 //S2D1 DD DSN=A.B.C' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 [[ -e A.B.Q%6001 ]] || > A.B.Q%6001 STEP=S1 \\ S1D1=A.B.C%123 \\ S1D2=A.B.Q%6001 \\ DDIN=\'S1D1\' \\ DDOUT=\'S1D2\' \\ IEFBR14 code=$? : S2 STEP=S2 \\ S2D1=A.B.C%123 \\ DDIN=\'S2D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -k -m t.map OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 [[ -e ab.Q%2 ]] || > ab.Q%2 STEP=S1 \\ S1D1=abc%123 \\ S1D2=ab.Q%2 \\ DDIN=\'S1D1\' \\ DDOUT=\'S1D2\' \\ IEFBR14 code=$? : S2 STEP=S2 \\ S2D1=abc%123 \\ DDIN=\'S2D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -m k.map INPUT k.map $'set\t--marklength\nmap\tA.B.C\t\tabc\nmap\tA.B\t\tab\t%2\nmap\tA\t\ta\t%1\nmap\t""\t\tx' EXEC -nvw -m- -m k.map --nomarklength OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ S1D1=abc \\ S1D2=ab.Q%2 \\ DDIN=\'S1D1\' \\ DDOUT=\'S1D2\' \\ IEFBR14 code=$? : S2 STEP=S2 \\ S2D1=abc \\ DDIN=\'S2D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -m q.map INPUT q.map $'set\t--marklength map\tA.B.Q\t\tabq\t.qz map\tA.B.C\t\tabc\t%3.qz map\tA.B\t\tab\t%2 map\tA\t\ta\t%1 map\t""\t\tx' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 [[ -e abq%6001.qz ]] || > abq%6001.qz STEP=S1 \\ S1D1=abc%3.qz \\ S1D2=abq%6001.qz \\ DDIN=\'S1D1\' \\ DDOUT=\'S1D2\' \\ IEFBR14 code=$? : S2 STEP=S2 \\ S2D1=abc%3.qz \\ DDIN=\'S2D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -m q.map INPUT q.map $'set\t--marklength map\tA.B.Q\t\tabq\t.qz map\tA.B.C\t\tabc\t%v3.qz map\tA.B\t\tab\t%v2 map\tA\t\ta\t%v1 map\t""\t\tx' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 [[ -e abq%6001.qz ]] || > abq%6001.qz STEP=S1 \\ S1D1=abc%v3.qz \\ S1D2=abq%6001.qz \\ DDIN=\'S1D1\' \\ DDOUT=\'S1D2\' \\ IEFBR14 code=$? : S2 STEP=S2 \\ S2D1=abc%v3.qz \\ DDIN=\'S2D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -m q.map INPUT q.map $'set\t--marklength map\tA.B.Q\t\tabq\t.qz map\tA.B.C\t\tabc.qz\t%3 map\tA.B\t\tab\t%2 map\tA\t\ta\t%1 map\t""\t\tx' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 [[ -e abq%6001.qz ]] || > abq%6001.qz STEP=S1 \\ S1D1=abc%3.qz \\ S1D2=abq%6001.qz \\ DDIN=\'S1D1\' \\ DDOUT=\'S1D2\' \\ IEFBR14 code=$? : S2 STEP=S2 \\ S2D1=abc%3.qz \\ DDIN=\'S2D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -m q.map INPUT q.map $'set\t--marklength map\tA.B.Q\t\tabq\t.qz map\tA.B.C\t\tabc.qz\t%v3 map\tA.B\t\tab\t%v2 map\tA\t\ta\t%v1 map\t""\t\tx' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 [[ -e abq%6001.qz ]] || > abq%6001.qz STEP=S1 \\ S1D1=abc%v3.qz \\ S1D2=abq%6001.qz \\ DDIN=\'S1D1\' \\ DDOUT=\'S1D2\' \\ IEFBR14 code=$? : S2 STEP=S2 \\ S2D1=abc%v3.qz \\ DDIN=\'S2D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -m q.map INPUT q.map $'set\t--marklength suf\t.qz map\tA.B.Q\t\tabq\t.qz map\tA.B.C\t\tabc.qz\t%3 map\tA.B\t\tab\t%2 map\tA\t\ta\t%1 map\t""\t\tx' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 [[ -e abq%6001.qz ]] || > abq%6001.qz STEP=S1 \\ S1D1=abc%3.qz \\ S1D2=abq%6001.qz \\ DDIN=\'S1D1\' \\ DDOUT=\'S1D2\' \\ IEFBR14 code=$? : S2 STEP=S2 \\ S2D1=abc%3.qz \\ DDIN=\'S2D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -m q.map INPUT q.map $'set\t--marklength suf\t.qz map\tA.B.Q\t\tabq\t.qz map\tA.B.C\t\tabc.qz\t%v3 map\tA.B\t\tab\t%v2 map\tA\t\ta\t%v1 map\t""\t\tx' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 [[ -e abq%6001.qz ]] || > abq%6001.qz STEP=S1 \\ S1D1=abc%v3.qz \\ S1D2=abq%6001.qz \\ DDIN=\'S1D1\' \\ DDOUT=\'S1D2\' \\ IEFBR14 code=$? : S2 STEP=S2 \\ S2D1=abc%v3.qz \\ DDIN=\'S2D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -k -m t.map INPUT - $'//TEST JOB TEST //SORT1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=COPY /* //SORTIN DD DSN=A.B.C,DCB=(RECFM=FB,LRECL=62) // DD DSN=A.B.C.X // DD DSN=A.B.C.Y //SORTOUT DD DSN=A.B.C.Z,DCB=(*.SORTIN)' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : SORT1 STEP=SORT1 \\ SORTIN=abc%62\' \t\'abc.X%62\' \t\'abc.Y%62 \\ SORTOUT=abc.Z%62 \\ DDIN=\'SORTIN SORTOUT\' \\ DDOUT=\'\' \\ SORT <<\'/*\' SORT FIELDS=COPY /* code=$?' EXEC -nvw -m- -m k.map EXEC -nvw -m- -k -m t.map INPUT - $'//TEST JOB TEST //SORT1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=COPY /* //SORTIN DD DUMMY,DSN=A.B.C,DCB=(RECFM=FB,LRECL=62) // DD DSN=A.B.C.X // DD DSN=A.B.C.Y //SORTOUT DD DSN=A.B.C.Z,DCB=(*.SORTIN)' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : SORT1 STEP=SORT1 \\ SORTIN=/dev/null \\ SORTOUT=abc.Z%62 \\ DDIN=\'SORTIN SORTOUT\' \\ DDOUT=\'\' \\ SORT <<\'/*\' SORT FIELDS=COPY /* code=$?' EXEC -nvw -m- -m k.map EXEC -nvw -m- -m m.map INPUT - $'//TEST JOB MAP TEST //S1 EXEC PGM=IEFBR14 //S1D1 DD DFUB1IW.TPHR212.C040609.XIVAI01.FIIP1800 abc.Z' INPUT m.map $'map\tDFUB1IW.TPHR212.C040609.\t\t${TESTROOT}/@data1/C040609/' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ S1D1="${TESTROOT}/@data1/C040609/XIVAI01.FIIP1800" \\ DDIN=\'S1D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- -m n.map INPUT n.map $'map\tDFUB1IW.TPHR212.C040609\t\t${TESTROOT}/@data1/C040609\' //TEST JOB MAP TEST //S1 EXEC PGM=IEFBR14 //S1D1 DD DFUB1IW.TPHR212.C040609.XIVAI01.FIIP1800 abc.Z' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : S1 STEP=S1 \\ S1D1="${TESTROOT}/@data1/C040609.XIVAI01.FIIP1800" \\ DDIN=\'S1D1\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' ERROR - $'jcl: "n.map", line 2: warning: //TEST: unknown op jcl: "n.map", line 3: warning: //S1: unknown op jcl: "n.map", line 4: warning: //S1D1: unknown op' EXEC -nvw -m- -m p.map INPUT - $'//TEST JOB TEST //TEST1 EXEC PGM=TEST //TESTIN DD DSN=A.B.C,DCB=(RECFM=FB,LRECL=62) // DD DSN=A.B.C.X,DCB=(RECFM=VB,LRECL=123) // DD DSN=D.E.F.Y // DD DSN=G.H.I.Z' INPUT p.map $'set\t--marklength map\tA.B.C\t\tabc\t\t.qz map\t*.E.F\t\t${1}/E/F\t%321 map\t*.*.I\t\t${2}/${1}.I map\t""\t\tx' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : TEST1 STEP=TEST1 \\ TESTIN=abc%v123.qz\' \t\'abc.X%123.qz\' \t\'D/E/F.Y%321\' \t\'H/G.I.Z%123 \\ DDIN=\'TESTIN\' \\ DDOUT=\'\' \\ TEST code=$?' ERROR - EXEC -nvw -m- -m v.map INPUT - $'//TEST JOB TEST //TEST1 EXEC PGM=TEST //TESTIN DD DSN=A.B.C.D.X.F // DD DSN=A.B.C.D.Y.F // DD DSN=A.B.C.D.E.F.G // DD DSN=A.B.C.D.E.F // DD DSN=A.B.C.D.E // DD DSN=A.B.C.D // DD DSN=A.B.C // DD DSN=A.B // DD DSN=A' INPUT v.map $'set\t--marklength map\t*.*.*.*.X.\t/X/${1}/${2}/${3}/${4}/ map\t*.*.*.*.Y\t/Y/${1}/${2}/${3}/${4} map\t*.*.*.*.*\t/5/${1}/${2}/${3}/${4}/${5} map\t*.*.*.*\t\t/4/${1}/${2}/${3}/${4} map\t*.*.*\t\t/3/${1}/${2}/${3} map\t*.*\t\t/2/${1}/${2} map\t*\t\t/1/${1}' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : TEST1 STEP=TEST1 \\ TESTIN=/X/A/B/C/D/F\' \t\'/Y/A/B/C/D.F\' \t\'/5/A/B/C/D/E.F.G\' \t\'/5/A/B/C/D/E.F\' \t\'/5/A/B/C/D/E\' \t\'/4/A/B/C/D\' \t\'/3/A/B/C\' \t\'/2/A/B\' \t\'/1/A \\ DDIN=\'TESTIN\' \\ DDOUT=\'\' \\ TEST code=$?' EXEC -nvw -m- -m v.map INPUT - $'//TEST JOB TEST //TEST1 EXEC PGM=TEST //TESTIN DD DSN=AAAAAAA.BBBBBBB.CCCCCCC.DDDDDDD.XXXXXXX // DD DSN=AAAAAAA.BBBBBBB.CCCCCCC.DDDDDDD.YYYYYYY // DD DSN=AAAAAAA.BBBBBBB.CCCCCCC.DDDDDDD.ZZZZZZZ // DD DSN=AAAAAAA.BBBBBBB.RRRRRRR.FFFFFFF.SSSSSSS // DD DSN=AAAAAAA.BBBBBBB.ERROR.FFFFFFF.SSSSSSS // DD DSN=AAAAAAA.BBBBBBB.QQQQQQQ.DDDDDDD.EEEEEEE' INPUT v.map $'set\t--marklength export\tROOT=/root set\tDATA=${ROOT}/data map\t*.*.*.*.XXXXXXX\t\t${DATA}/${3}/${4}.XXXXXXX\t%789.qz map\t*.*.*.*.YYYYYYY\t\t${DATA}/${3}/${4}.YYYYYYY\t%v1234.qz map\t*.*.QQQQQQQ.*.*\t\t${DATA}/QQQQQQQ/${4}.${3} map\t*.*.RRRRRRR.*.SSSSSSS\t${DATA}/SSSSSSS/${3}/${2}/${1} map\t*.*.ERROR.*\t\t${DATA}/SSSSSSS/${4} map\t*.*.*.*.*\t\t${DATA}/${3}/${4}.${5}' OUTPUT - $'export ROOT=/root : JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : TEST1 STEP=TEST1 \\ TESTIN=/root/data/CCCCCCC/DDDDDDD.XXXXXXX%789.qz\' \t\'/root/data/CCCCCCC/DDDDDDD.YYYYYYY%v1234.qz\' \t\'/root/data/CCCCCCC/DDDDDDD.ZZZZZZZ\' \t\'/root/data/SSSSSSS/FFFFFFF/BBBBBBB/AAAAAAA\' \t\'/root/data/SSSSSSS/\' \t\'/root/data/QQQQQQQ/EEEEEEE.DDDDDDD \\ DDIN=\'TESTIN\' \\ DDOUT=\'\' \\ TEST code=$?' ERROR - 'jcl: line 7: ${4}: not defined for this pattern' EXIT 1 EXEC -nvw -m- -m v.map INPUT v.map $'set\t--marklength set\tROOT=/root set\tDATA=${ROOT}/data map\t*.*.*.*.XXXXXXX\t\t${DATA}/${3}/${4}.XXXXXXX\t%789.qz map\t*.*.*.*.YYYYYYY\t\t${DATA}/${3}/${4}.YYYYYYY\t%v1234.qz map\t*.*.QQQQQQQ.*.*\t\t${DATA}/QQQQQQQ/${4}.${3} map\t*.*.RRRRRRR.*.SSSSSSS\t${DATA}/SSSSSSS/${3}/${2}/${1} map\t*.*.ERROR.*\t\t${DATA}/SSSSSSS/${4} map\t*.*.*.*.*\t\t${DATA}/${3}/${4}.${5}' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : TEST1 STEP=TEST1 \\ TESTIN=/root/data/CCCCCCC/DDDDDDD.XXXXXXX%789.qz\' \t\'/root/data/CCCCCCC/DDDDDDD.YYYYYYY%v1234.qz\' \t\'/root/data/CCCCCCC/DDDDDDD.ZZZZZZZ\' \t\'/root/data/SSSSSSS/FFFFFFF/BBBBBBB/AAAAAAA\' \t\'/root/data/SSSSSSS/\' \t\'/root/data/QQQQQQQ/EEEEEEE.DDDDDDD \\ DDIN=\'TESTIN\' \\ DDOUT=\'\' \\ TEST code=$?' EXEC -r -m- -m v.map AAAAAAA.BBBBBBB.CCCCCCC.DDDDDDD.XXXXXXX AAAAAAA.BBBBBBB.CCCCCCC.DDDDDDD.YYYYYYY AAAAAAA.BBBBBBB.CCCCCCC.DDDDDDD.ZZZZZZZ AAAAAAA.BBBBBBB.RRRRRRR.FFFFFFF.SSSSSSS AAAAAAA.BBBBBBB.ERROR.FFFFFFF.SSSSSSS AAAAAAA.BBBBBBB.QQQQQQQ.DDDDDDD.EEEEEEE OUTPUT - $'/root/data/CCCCCCC/DDDDDDD.XXXXXXX%789.qz /root/data/CCCCCCC/DDDDDDD.YYYYYYY%v1234.qz /root/data/CCCCCCC/DDDDDDD.ZZZZZZZ /root/data/SSSSSSS/FFFFFFF/BBBBBBB/AAAAAAA /root/data/SSSSSSS/ /root/data/QQQQQQQ/EEEEEEE.DDDDDDD' ERROR - 'jcl: ${4}: not defined for this pattern' EXEC -nvw -m- -m e.map INPUT - INPUT e.map $'set\t--marklength map\tXXXXXXX\t\t\txxxxxxx map\tXXXXXXX.*\t\tyyyyyyy/${1} map\tXXXXXXX.*.*\t\tyyyyyyy/${1}/${2} map\t*.*.*.*.XXXXXXX\t\t${3}/XXXXXXX map\t*.*.*.*.XXXXXXX.*\t${3}/YYYYYYY/${5} map\t*.*.*.*.XXXXXXX.*.*\t${3}/YYYYYYY/${5}/${6} map\t*.*.XXXXXXX.*.YYYYYYY\t${3}/YYYYYYY map\t*.*.XXXXXXX.*.ZZZZZZZ\t${3}/ZZZZZZZ' OUTPUT - ERROR - $'jcl: "e.map", line 4: XXXXXXX.*.*: duplicate map prefix jcl: "e.map", line 7: *.*.*.*.XXXXXXX.*.*: duplicate map prefix jcl: "e.map", line 9: *.*.XXXXXXX.*.ZZZZZZZ: duplicate map prefix' EXEC -nvw -m- -m a.map INPUT - $'//TEST JOB TEST //TEST1 EXEC PGM=TEST //TESTIN DD DSN=AAAAAAA.BBBBBBB.CCCCCCC // DD DSN=AAAAAAA.BBBBBBB.CCCCCCC.DDDDDDD.XXXXXXX // DD DSN=AAAAAAA.BBBBBBB.CCCCCCC.DDDDDDD.YYYYYYY // DD DSN=AAAAAAA.BBBBBBB.CCCCCCC.DDDDDDD.ZZZZZZZ // DD DSN=AAAAAAA.BBBBBBB.RRRRRRR.FFFFFFF.SSSSSSS // DD DSN=AAAAAAA.BBBBBBB.ERROR.FFFFFFF.SSSSSSS // DD DSN=AAAAAAA.BBBBBBB.QQQQQQQ.DDDDDDD.EEEEEEE // DD DSN=AAAAAAA.ZZZZZZZ(CCCCCCC) // DD DSN=AAAAAAA.ZZZZZZZ(CCCCCCC.DDDDDDD.XXXXXXX) // DD DSN=AAAAAAA.ZZZZZZZ(CCCCCCC.DDDDDDD.YYYYYYY) // DD DSN=AAAAAAA.ZZZZZZZ(CCCCCCC.DDDDDDD.ZZZZZZZ) // DD DSN=AAAAAAA.ZZZZZZZ(RRRRRRR.FFFFFFF.SSSSSSS) // DD DSN=AAAAAAA.ZZZZZZZ(ERROR.FFFFFFF.SSSSSSS) // DD DSN=AAAAAAA.ZZZZZZZ(QQQQQQQ.DDDDDDD.EEEEEEE)' INPUT a.map $'map\t*.BBBBBBB.* \tdir/${1}/${2}\nmap\t*.ZZZZZZZ/* \tpds/${1}/${2}' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : TEST1 STEP=TEST1 \\ TESTIN=dir/AAAAAAA/CCCCCCC\' \t\'dir/AAAAAAA/CCCCCCC.DDDDDDD.XXXXXXX\' \t\'dir/AAAAAAA/CCCCCCC.DDDDDDD.YYYYYYY\' \t\'dir/AAAAAAA/CCCCCCC.DDDDDDD.ZZZZZZZ\' \t\'dir/AAAAAAA/RRRRRRR.FFFFFFF.SSSSSSS\' \t\'dir/AAAAAAA/ERROR.FFFFFFF.SSSSSSS\' \t\'dir/AAAAAAA/QQQQQQQ.DDDDDDD.EEEEEEE\' \t\'AAAAAAA.ZZZZZZZ/CCCCCCC\' \t\'AAAAAAA.ZZZZZZZ/CCCCCCC.DDDDDDD.XXXXXXX\' \t\'AAAAAAA.ZZZZZZZ/CCCCCCC.DDDDDDD.YYYYYYY\' \t\'AAAAAAA.ZZZZZZZ/CCCCCCC.DDDDDDD.ZZZZZZZ\' \t\'AAAAAAA.ZZZZZZZ/RRRRRRR.FFFFFFF.SSSSSSS\' \t\'AAAAAAA.ZZZZZZZ/ERROR.FFFFFFF.SSSSSSS\' \t\'AAAAAAA.ZZZZZZZ/QQQQQQQ.DDDDDDD.EEEEEEE \\ DDIN=\'TESTIN\' \\ DDOUT=\'\' \\ TEST code=$?' ERROR - EXIT 0 TEST 11 'syntax round II' EXEC -nvw -m- -k INPUT - $'//TEST JOB TEST\n//SORT1 EXEC PGM=SORT\n//SYSIN DD *\n SORT FIELDS=COPY' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : SORT1 STEP=SORT1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ SORT <<\'/*\' SORT FIELDS=COPY /* code=$?' EXEC -nvw -m- -k INPUT - $'//TEST JOB TEST //STEP01 EXEC PGM=HAL9000 //HAL_IN DD DSN=A.B.C.D // DD DSN=A.B.C.E' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP01 STEP=STEP01 \\ HAL_IN=A.B.C.D\' \t\'A.B.C.E \\ DDIN=\'HAL_IN\' \\ DDOUT=\'\' \\ HAL9000 code=$?' EXEC -nvw -m- -k INPUT - $'//TEST JOB TEST //STEP01 EXEC PGM=HAL9000 //HAL.IN DD DSN=A.B.C.D // DD DSN=A.B.C.E' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP01 STEP=STEP01 \\ DDIN=\'\' \\ DDOUT=\'\' \\ HAL9000 code=$?' TEST 12 IF/ELSE/ENDIF EXEC -nvw -m- -k INPUT - $'//TEST JOB TEST // SET ?RC?=2 // IF (RC LT 4) THEN // EXEC PGM=ECHO,PARM=TRUE-1 // ELSE // EXEC PGM=ECHO,PARM=FALSE-1 // ENDIF // IF (RC < 4) THEN // EXEC PGM=ECHO,PARM=TRUE-2 // ELSE // EXEC PGM=ECHO,PARM=FALSE-2 // ENDIF // SET ?RC?=16 // IF (RC LT 4) THEN // EXEC PGM=ECHO,PARM=TRUE-3 // ELSE // EXEC PGM=ECHO,PARM=FALSE-3 // ENDIF // IF (RC < 4) THEN // EXEC PGM=ECHO,PARM=TRUE-4 // ELSE // EXEC PGM=ECHO,PARM=FALSE-4 // ENDIF // SET ?RC?=2 // IF (RC LT 4 | RC = 16) THEN // EXEC PGM=ECHO,PARM=TRUE-5 // ELSE // EXEC PGM=ECHO,PARM=FALSE-5 // ENDIF // IF (RC < 4 | RC = 16) THEN // EXEC PGM=ECHO,PARM=TRUE-6 // ELSE // EXEC PGM=ECHO,PARM=FALSE-6 // ENDIF // SET ?RC?=16 // IF (RC LT 4 | RC = 16) THEN // EXEC PGM=ECHO,PARM=TRUE-7 // ELSE // EXEC PGM=ECHO,PARM=FALSE-7 // ENDIF // IF (RC < 4 | RC = 16) THEN // EXEC PGM=ECHO,PARM=TRUE-8 // ELSE // EXEC PGM=ECHO,PARM=FALSE-8 // ENDIF // SET ?RC?=2 // IF (RC LT 4 | RC = 16) THEN // EXEC PGM=ECHO,PARM=TRUE-9 // ELSE // EXEC PGM=ECHO,PARM=FALSE-9 // ENDIF // IF ((RC LT 4 & RC LT 12) | RC = 16) THEN // EXEC PGM=ECHO,PARM=TRUE-10 // ELSE // EXEC PGM=ECHO,PARM=FALSE-10 // ENDIF // SET ?RC?=16 // IF (RC LT 4 | RC = 16) THEN // EXEC PGM=ECHO,PARM=TRUE-11 // ELSE // EXEC PGM=ECHO,PARM=FALSE-11 // ENDIF // IF ((RC LT 4 & RC LT 12) | RC = 16) THEN // EXEC PGM=ECHO,PARM=TRUE-12 // ELSE // EXEC PGM=ECHO,PARM=FALSE-12 // ENDIF' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-1 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-2 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO FALSE-3 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO FALSE-4 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-5 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-6 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-7 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-8 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-9 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-10 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-11 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-12 code=$?' EXIT 16 EXEC -nvw -m- -k INPUT - $'//TEST JOB TEST // SET ?ABEND?=1 //STEP1 EXEC PGM=TRUE // IF (ABEND | STEP1.RC > 8) THEN // EXEC PGM=ECHO,PARM=TRUE-1 // ENDIF // IF (ABEND OR STEP1.RC GT 8) THEN // EXEC PGM=ECHO,PARM=TRUE-2 // ENDIF // SET ?RC?=6 // IF (RC > 4 & RC < 8) THEN // EXEC PGM=ECHO,PARM=TRUE-3 // ENDIF // IF (RC GT 4 AND RC LT 8) THEN // EXEC PGM=ECHO,PARM=TRUE-4 // ENDIF' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ TRUE code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-1 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-2 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-3 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO TRUE-4 code=$?' EXIT 6 EXEC -nvw -m- -k INPUT - $'//TEST JOB TEST // SET ?ABEND?=0 //STEP1 EXEC PGM=TRUE // IF (ABEND | STEP1.RC > 8) THEN // EXEC PGM=ECHO,PARM=TRUE-1 // ENDIF // IF (ABEND OR STEP1.RC GT 8) THEN // EXEC PGM=ECHO,PARM=TRUE-2 // ENDIF // SET ?RC?=2 // IF (RC > 4 & RC < 8) THEN // EXEC PGM=ECHO,PARM=TRUE-3 // ENDIF // IF (RC GT 4 AND RC LT 8) THEN // EXEC PGM=ECHO,PARM=TRUE-4 // ENDIF' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ TRUE code=$?' EXIT 2 EXEC -nvw -m- -k INPUT - $'//JOBA JOB TEST //STEP1 EXEC PGM=BEFORE //IFBAD IF (ABEND | STEP1.RC > 8) THEN //TRUE EXEC PGM=ERROR //IFBADEND ENDIF //NEXTSTEP EXEC PGM=AFTER' OUTPUT - $': JOB JOBA export JCL_AUTO_JOBNAME=JOBA code=0 : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ BEFORE code=$? : NEXTSTEP STEP=NEXTSTEP \\ DDIN=\'\' \\ DDOUT=\'\' \\ AFTER code=$?' EXIT 0 EXEC -nvw -m- -k INPUT - $'//JOBA JOB TEST //STEP1 EXEC PGM=BEFORE //IFBAD IF (!ABEND & STEP1.RC < 8) THEN //TRUE EXEC PGM=OK //IFBADEND ENDIF //NEXTSTEP EXEC PGM=AFTER' OUTPUT - $': JOB JOBA export JCL_AUTO_JOBNAME=JOBA code=0 : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ BEFORE code=$? : TRUE STEP=TRUE \\ DDIN=\'\' \\ DDOUT=\'\' \\ OK code=$? : NEXTSTEP STEP=NEXTSTEP \\ DDIN=\'\' \\ DDOUT=\'\' \\ AFTER code=$?' EXEC -nvw -m- -k INPUT - $'//JOBA JOB TEST //STEP1 EXEC PGM=BEFORE //IFBAD IF (ABEND | STEP1.RC > 8) THEN //TRUE EXEC PGM=ERROR // ELSE //IFBADEND ENDIF //NEXTSTEP EXEC PGM=AFTER' OUTPUT - $': JOB JOBA export JCL_AUTO_JOBNAME=JOBA code=0 : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ BEFORE code=$? : NEXTSTEP STEP=NEXTSTEP \\ DDIN=\'\' \\ DDOUT=\'\' \\ AFTER code=$?' EXEC -nvw -m- -k INPUT - $'//JOBA JOB TEST //STEP1 EXEC PGM=BEFORE //IFBAD IF (!ABEND & STEP1.RC < 8) THEN //TRUE EXEC PGM=OK // ELSE //IFBADEND ENDIF //NEXTSTEP EXEC PGM=AFTER' OUTPUT - $': JOB JOBA export JCL_AUTO_JOBNAME=JOBA code=0 : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ BEFORE code=$? : TRUE STEP=TRUE \\ DDIN=\'\' \\ DDOUT=\'\' \\ OK code=$? : NEXTSTEP STEP=NEXTSTEP \\ DDIN=\'\' \\ DDOUT=\'\' \\ AFTER code=$?' EXEC -nvw -m- -k INPUT - $'//JOBA JOB TEST //STEP1 EXEC PGM=BEFORE //IFBAD IF (ABEND | STEP1.RC > 8) THEN //TRUE EXEC PGM=ERROR // ELSE //YES EXEC PGM=TRUE //IFBADEND ENDIF //NEXTSTEP EXEC PGM=AFTER' OUTPUT - $': JOB JOBA export JCL_AUTO_JOBNAME=JOBA code=0 : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ BEFORE code=$? : YES STEP=YES \\ DDIN=\'\' \\ DDOUT=\'\' \\ TRUE code=$? : NEXTSTEP STEP=NEXTSTEP \\ DDIN=\'\' \\ DDOUT=\'\' \\ AFTER code=$?' EXEC -nvw -m- -k INPUT - $'//JOBA JOB TEST //STEP1 EXEC PGM=BEFORE //IFBAD IF (!ABEND & STEP1.RC < 8) THEN //TRUE EXEC PGM=OK // ELSE // EXEC PGM=TRUE //IFBADEND ENDIF //NEXTSTEP EXEC PGM=AFTER' OUTPUT - $': JOB JOBA export JCL_AUTO_JOBNAME=JOBA code=0 : STEP1 STEP=STEP1 \\ DDIN=\'\' \\ DDOUT=\'\' \\ BEFORE code=$? : TRUE STEP=TRUE \\ DDIN=\'\' \\ DDOUT=\'\' \\ OK code=$? : NEXTSTEP STEP=NEXTSTEP \\ DDIN=\'\' \\ DDOUT=\'\' \\ AFTER code=$?' EXEC -nvw -m- -k RC=3 INPUT - $'//TEST JOB TEST // SET ?RC?=&RC // EXEC PGM=ECHO,PARM=1 // IF (RC > 5) THEN // IF (RC > 7) THEN // EXEC PGM=ECHO,PARM=2 // ELSE // EXEC PGM=ECHO,PARM=3 // ENDIF // ELSE // IF (RC > 3) THEN // EXEC PGM=ECHO,PARM=4 // ELSE // EXEC PGM=ECHO,PARM=5 // ENDIF // ENDIF // EXEC PGM=ECHO,PARM=(E,O,F)' OUTPUT - $'export RC=3 : JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO 1 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO 5 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO E,O,F code=$?' EXIT 3 EXEC -nvw -m- -k RC=5 OUTPUT - $'export RC=5 : JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO 1 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO 4 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO E,O,F code=$?' EXIT 5 EXEC -nvw -m- -k RC=7 OUTPUT - $'export RC=7 : JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO 1 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO 3 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO E,O,F code=$?' EXIT 7 EXEC -nvw -m- -k RC=9 OUTPUT - $'export RC=9 : JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO 1 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO 2 code=$? : STEP= \\ DDIN=\'\' \\ DDOUT=\'\' \\ ECHO E,O,F code=$?' EXIT 9 TEST 13 INCLUDE EXEC -nvw -m- INPUT - $'//TEST JOB TEST //LIBSRCH JCLLIB ORDER=TEST.SYSOUT.JCL //STEP1 EXEC PGM=OUTRTN //OUTPUT1 INCLUDE MEMBER=include.jcl //STEP2 EXEC PGM=IEFBR14' INPUT include.jcl '//SYSOUT2 DD DSN=A' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : STEP1 STEP=STEP1 \\ SYSOUT2=A \\ DDIN=\'SYSOUT2\' \\ DDOUT=\'\' \\ OUTRTN code=$? : STEP2 STEP=STEP2 \\ DDIN=\'\' \\ DDOUT=\'\' \\ IEFBR14 code=$?' EXEC -nvw -m- INPUT - $'//TEST JOB TEST //LIBSRCH JCLLIB ORDER=(TEST.SYSOUT.JCL,MY.JCL.NOT.YOURS) //STEP1 EXEC PGM=OUTRTN //OUTPUT1 INCLUDE MEMBER=include.jcl //STEP2 EXEC PGM=IEFBR14' INPUT include.jcl '//SYSOUT2 DD DSN=A' TEST 14 DD EXEC -nvw -m- INPUT - $'//SPACY PROC SYM1=\'What\'\'\'\'s up, Doc?\',SYM2=(DEF),SYM3=&&&&TEMP1, // SYM4=\'&&TEMP2\',SYM5=TEMP3, // SYM6=TEMP4 //S1 EXEC PGM=WTO,PARM=\'&SYM1\',ACCT=&SYM2 //DD1 DD DSN=&SYM3,UNIT=SYSDA, // SPACE=(TRK,(1,,1),2),DISP=(NEW,KEEP) //DD2 DD DSN=&SYM4,UNIT=SYSDA, // SPACE=(TRK,(1,,1),2),DISP=(OLD,DELETE) //DD3 DD DSN=&SYM5,UNIT=SYSDA, // SPACE=(TRK,(1,,1),2),DISP=MOD //DD4 DD DSN=&SYM6,UNIT=SYSDA, // SPACE=(TRK,(1,,1),2),DISP=NEW // PEND' OUTPUT - $': JOB SPACY export JCL_AUTO_JOBNAME=SPACY code=0 trap \'code=$?; rm -rf ${TMPDIR:-/tmp}/job.SPACY.$$.*; exit $code\' 0 1 2 : S1 [[ ! -d ${TMPDIR:-/tmp}/job.SPACY.$$.TEMP1 && ! -f ${TMPDIR:-/tmp}/job.SPACY'\ $'.$$.TEMP1 ]] && mkdir -p ${TMPDIR:-/tmp}/job.SPACY.$$.TEMP1 [[ ! -d TEMP3 && ! -f TEMP3 ]] && mkdir -p TEMP3 [[ ! -d TEMP4 && ! -f TEMP4 ]] && mkdir -p TEMP4 STEP=S1 \\ DD1=${TMPDIR:-/tmp}/job.SPACY.$$.TEMP1 \\ DD2=${TMPDIR:-/tmp}/job.SPACY.$$.TEMP2 \\ DD3=TEMP3 \\ DD4=TEMP4 \\ DDIN=\'DD2\' \\ DDOUT=\'DD1 DD3 DD4\' \\ WTO $\'What\\\'s up, Doc?\' ACCT=\'(DEF)\' code=$? if (( ! $code )) then \trm -rf ${TMPDIR:-/tmp}/job.SPACY.$$.TEMP2 fi' TEST 15 OUTPUT EXEC -nvw -m- INPUT - $'//TESTOUT PROC OUTTEST //OUT1 OUTPUT DEST=STLNODE.WMSMITH //OUT2 OUTPUT CONTROL=DOUBLE //TEST EXEC PGM=TEST //DS DD SYSOUT=C,OUTPUT=(*.OUT1,*.OUT2)' OUTPUT - $': JOB TESTOUT export JCL_AUTO_JOBNAME=TESTOUT code=0 : TEST STEP=TEST \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST code=$?' EXEC -nsvw -m- OUTPUT - $': JOB TESTOUT export JCL_AUTO_JOBNAME=TESTOUT code=0 n=0 t=$(date +%y-%m-%d) while\t: do\td=TESTOUT.$t.$((++n)) \t[[ -d $d ]] || break done mkdir $d && cd $d || exit 1 exec > SYSOUT 2> SYSERR TIMEFORMAT=\'USAGE CPU=%P%% REAL=%R USR=%U SYS=%S\' time { date +\'STARTED AT %K\' : TEST STEP=TEST \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST code=$? date +\'COMPLETED AT %K\' }' TEST 16 'delayed references' EXEC -nvw -m- INPUT - $'//JOB1 JOB TEST //STEPA EXEC PGM=TEST //DD1 DD DSNAME=REPORT //DD2 DD DSN=TABLE //DD3 DD DSNAME=*.DD1 //DD4 DD DDNAME=DD1' OUTPUT - $': JOB JOB1 export JCL_AUTO_JOBNAME=JOB1 code=0 : STEPA STEP=STEPA \\ DD1=REPORT \\ DD2=TABLE \\ DD3=REPORT \\ DD4=REPORT \\ DDIN=\'DD1 DD2 DD3 DD4\' \\ DDOUT=\'\' \\ TEST code=$?' EXEC -nvw -m- INPUT - $'//JOB1 JOB TEST //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DDNAME=INPUT //INPUT DD DSN=TSTDATA1,DISP=SHR // DD DSN=TSTDATA2,DISP=SHR //SYSUT2 DD SYSOUT=* //SYSIN DD DUMMY' OUTPUT - $': JOB JOB1 export JCL_AUTO_JOBNAME=JOB1 code=0 : STEP1 STEP=STEP1 \\ INPUT=TSTDATA1\' \t\'TSTDATA2 \\ SYSUT1=TSTDATA1\' \t\'TSTDATA2 \\ DDIN=\'INPUT SYSUT1\' \\ DDOUT=\'\' \\ IEBGENER < /dev/null code=$?' EXEC -nvw -m- INPUT - $'//JOB1 JOB TEST //TPROC PROC //S1 EXEC PGM=PROG1 //DD1 DD DDNAME=INPUT //DD2 DD DSN=MYDSN2,DISP=SHR //DD3 DD DSN=MYDSN3,DISP=SHR //S2 EXEC PGM=PROG2 //DDA DD DDNAME=INPUT //DDB DD DSN=MINE2,DISP=SHR //DDC DD DSN=MINE3,DISP=SHR // PEND //STEP1 EXEC TPROC //INPUT DD DSN=MYDSN1,DISP=SHR // DD DSN=MYDSN4,DISP=SHR //S2.INPUT DD DSN=MINE1,DISP=SHR // DD DSN=MINE4,DISP=SHR' OUTPUT - $': JOB JOB1 export JCL_AUTO_JOBNAME=JOB1 code=0 : STEP1 PROC TPROC : S1 STEP=S1 \\ DD1=MYDSN1\' \t\'MYDSN4 \\ DD2=MYDSN2 \\ DD3=MYDSN3 \\ DDIN=\'DD1 DD2 DD3\' \\ DDOUT=\'\' \\ PROG1 code=$? : S2 STEP=S2 \\ DDA=MINE1\' \t\'MINE4 \\ DDB=MINE2 \\ DDC=MINE3 \\ INPUT=MINE1\' \t\'MINE4 \\ DDIN=\'DDA DDB DDC INPUT\' \\ DDOUT=\'\' \\ PROG2 code=$?' EXEC -nvw -m- INPUT - $'//JOB1 JOB TEST //TPROC PROC //S1 EXEC PGM=PROG1 //DD1 DD DDNAME=INPUT //DD2 DD DSN=MYDSN2,DISP=SHR //DD3 DD DSN=MYDSN3,DISP=SHR //S2 EXEC PGM=PROG2 //DDA DD SUBSYS=(BLSR,\'DDNAME=INPUT\') //DDB DD DSN=MINE2,DISP=SHR //DDC DD DSN=MINE3,DISP=SHR // PEND //STEP1 EXEC TPROC //INPUT DD DSN=MYDSN1,DISP=SHR // DD DSN=MYDSN4,DISP=SHR //S2.INPUT DD DSN=MINE1,DISP=SHR // DD DSN=MINE4,DISP=SHR' TEST 17 'control-m auto edit expansion' EXEC -d4 -n -m- -O 1998-06-03 INPUT - $'//EJ%%ODATE JOB (0,15)\n// EXEC PGM=ACCOUNTS,DAY=%%ODAY,MONTH=%%OMONTH' ERROR - $'jcl: debug-4: record 1 //EJ980603 JOB (0,15) jcl: debug-4: record 2 // EXEC PGM=ACCOUNTS,DAY=03,MONTH=06 jcl: debug-2: set DAY=03 jcl: debug-2: set MONTH=06' EXEC -d4 -n -m- INPUT - $'//J1 JOB TEST //* %%SET %%A = 1 //* %%SET %%B = 2 //* %%SET %%A2 = 100 //P1 EXEC PGM=P1,A=%%A,B=%%B,AB=%%A%%B,A.B=%%A.%%B' ERROR - $'jcl: debug-4: record 1 //J1 JOB TEST jcl: debug-2: set JCL_AUTO_A=1 jcl: debug-2: set JCL_AUTO_B=2 jcl: debug-2: set JCL_AUTO_A2=100 jcl: debug-4: record 5 //P1 EXEC PGM=P1,A=1,B=2,AB=100,A.B=12 jcl: debug-2: set A=1 jcl: debug-2: set B=2 jcl: debug-2: set AB=100 jcl: debug-2: set A.B=12' EXEC -d4 -n -m- -O 2000-09-24 INPUT - $'//J1 JOB TEST //S1 EXEC PGM=T1,$OYEAR=%%$OYEAR,OYEAR=%%OYEAR, // OMONTH=%%OMONTH,ODAY=%%ODAY,OWDAY=%%OWDAY //* %%SET %%BACKUP_UNIT = TAPE //F1 DD %%BACKUP_UNIT //* %%SET %%BACKUP_UNIT_%%OWDAY = EE%%OMONTH.%%ODAY //F2 DD %%BACKUP_UNIT_%%OWDAY //F3 DD %%BACKUP_UNIT_7' ERROR - $'jcl: debug-4: record 1 //J1 JOB TEST jcl: debug-4: record 2 //S1 EXEC PGM=T1,$OYEAR=2000,OYEAR=00,OMONTH=09,'\ $'ODAY=24,OWDAY=7 jcl: debug-2: set $OYEAR=2000 jcl: debug-2: set OYEAR=00 jcl: debug-2: set OMONTH=09 jcl: debug-2: set ODAY=24 jcl: debug-2: set OWDAY=7 jcl: debug-2: set JCL_AUTO_BACKUP_UNIT=TAPE jcl: debug-4: record 5 //F1 DD TAPE jcl: debug-2: set JCL_AUTO_BACKUP_UNIT_7=EE0924 jcl: debug-4: record 7 //F2 DD EE0924 jcl: debug-4: record 8 //F3 DD EE0924' TEST 18 'parsalyze this' EXEC -nvw -m- INPUT - $'//TEST JOB (0,15) //TEST01 EXEC PGM=TEST02,PARM=(\'(12345,\'\' \'\',\'\'TEST03\'\',FOO BAR)\''\ $') //TEST04 EXEC PGM=TEST05,PARM=(\'FOO = \'\'BAR\'\';\')' OUTPUT - $': JOB TEST export JCL_AUTO_JOBNAME=TEST code=0 : TEST01 STEP=TEST01 \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST02 $\'(12345,\\\' \\\',\\\'TEST03\\\',FOO BAR)\' code=$? : TEST04 STEP=TEST04 \\ DDIN=\'\' \\ DDOUT=\'\' \\ TEST05 $\'FOO = \\\'BAR\\\';\' code=$?'