Sample JCL:
// JOB statement
//EXPORT EXPORT SYMLIST=*
//PIMS SET PIMS=AAAA
//SIMS SET SIMS=BBBB
//*
//BUILDLIB EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//USERLOAD DD DISP=SHR,DSN=USER.LOADLIB
//STAGINGL DD DISP=(,CATLG),DSN=STAGING.LOADLIB,
// DCB=(RECFM=U,LRECL=0,BLKSIZE=32760),
// UNIT=SYSDA,SPACE=(CYL,(1,1,1),RLSE)
//SYSIN DD *,SYMBOLS=JCLONLY
COPY INDD=((USERLOAD,R)),OUTDD=STAGINGL,LIST=YES
S M=((CAI#&PIMS,,R))
S M=((CAI#&SIMS,,R))
//*
Gets error CAY6037E UNKNOWN KEYWORD 'SYMBOLS' SPECIFIED IN OPERAND OF 'DD'
CAY6042E OPERAND 'CAI#&PIMS' IS TOO LONG FOR 'NAME' PARAMETER OF 'MEMBER'
CAY6042E OPERAND 'CAI#&SIMS' IS TOO LONG FOR 'NAME' PARAMETER OF 'MEMBER'
Release : 12.0
Component: JCLCheck Workload Automation
The JCLCheck Usermod MZ2C012 is applied, and it uses an old copy of the JCL decoding table named MVS4XTBL.
Support for the EXPORT statement, and SYMBOLS were added to MVS4XTBL in August 2013.
Use the latest copy of MVS4XTBL which is located in the JCLCheck SMPE Target CAZ2SRC library to apply usermod MZ2C012.
To ensure that it has SYMBOLS support, browse MVS4XTBL, and search for "SYMBOLS". Expected find:
************************************************************** JCK00932 00213900
* JCK00932 00214000
* DD STATEMENT "SYMBOLS" PARAMETER JCK00932 00214100
* JCK00932 00214200
************************************************************** JCK00932 00214300
DSYMBOLS $PTB LAST=DSYMLOGD JCK00932 00214600
$J6PCB NAME=DSYMPRM,VTB=DSYMBOL1,REQ=YES JCK00932 00214700
$J6PCB NAME=DSYMLOGD,VTB=DSYMBOL2 JCK00932 00215220
DSYMBOL1 $VTB LEN=(7,7),KTB=DSYMBOLP,SAVE=XJBDSYMP, JCK00932+00215230
CAEXIT=SYMEXIT JCK00932 00215231
DSYMBOL2 $VTB LEN=(0,8),VAL=ALPH1,SAVE=XJBDSYMD JCK00932 00215232
DSYMBOLP $KTB LAST=JCLONLY JCK00932 00215240
$J6PCB NAME=(CNVTSYS,EXECSYS,JCLONLY) JCK00932 00215250
************************************************************** JCK00932 00215300