You will need to customize a number of areas within the Snippets. Esp. the Job Card - and any additional //JOBLIB - JCLLIB statements needed. Test before rolling out. Customize to shop standards (JCLLIB, etc.) & personalize; i.e. Programer Name, Accounting info, etc. //${JobName}A JOB ${Accounting Code},${Programmer Name}, // MSGCLASS=${Message Class},CLASS=${ClassVar},REGION=4M,TIME=5 Requires Customized PROCs - You will want to customize this to your shop standards //STP0000 EXEC PROC=ELAXFCOC, // CICS=, // DB2=, // COMP= //DDSQL DD DSN=${TSO_ID}.${PACKAGE}.SPUFI(SPUFIZOS),DISP=SHR //COBOL.SYSDEBUG DD DISP=SHR, // DSN=${TSO_ID}.${TSO_ID}.SYSDEBUG(${member_name}) //COBOL.SYSLIN DD DISP=SHR, // DSN=${TSO_ID}.COBOBJS.OBJ(${member_name}) //COBOL.SYSLIB DD DISP=SHR, // DSN=${TSO_ID}.${TSO_ID}.COPYLIB // DD DISP=SHR, // DSN=${TSO_ID}.${TSO_ID}.COPYLIB // DD DISP=SHR, // DSN=${TSO_ID}.PARTSUPP.COBOL // DD DISP=SHR, // DSN=${TSO_ID}.BNCHMARK.COPYLIB // DD DISP=SHR, // DSN=${TSO_ID}.BNCHMRK1.COPYLIB //COBOL.SYSXMLSD DD DUMMY //COBOL.SYSIN DD DISP=SHR, // DSN=DDS0001.BNCHMARK.COBOL(${member_name}) //* //******* ADDITIONAL JCL FOR COMPILE HERE ****** //LKED EXEC PROC=ELAXFLNK //LINK.OBJ0000 DD DISP=SHR, // DSN=DDS0001.COBOBJS.OBJ(${member_name}) //LINK.SYSLIN DD * INCLUDE OBJ0000 /* //LINK.SYSLMOD DD DISP=SHR, // DSN=DDS0001.LOAD(${member_name}) //* //******* ADDITIONAL JCL FOR LINK HERE ****** // Call to BR14 (Branch to Register 14) to use JCL to delete an existing file - Includes JOB Card //${userID}B JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=0M,COND=(16,LT) //ERASE EXEC PGM=IEFBR14 //THEFILE DD DSN=${dsnVar},DISP=(OLD,DELETE) FTP VSAM data from one LPAR to another //${userID} JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=0M,COND=(16,LT) //EXEC EXEC PGM=FTP,PARM='${ipParm}' //NETRC DD DISP=SHR,DSN=${netrcVar} //* NETRC points to a record of specific format to login to an LPAR //SYSUT2 DD DISP=SHR,DSN=${sysut2Var} //INPUT DD * site rdw GET TEST.VB //DD:SYSUT2 quit /* //* GET //DD: //* inetcat changes (and prefix inetcat... odd) cd inetcat structure record binary IDCAMS Define VSAM Cluster - Includes JOB Card //${userID}I JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(2,1),REGION=70M,COND=(16,LT) //* //PATMSTR EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER (NAME(${clusterNameVar}) - TRACKS(10 1) - RECORDSIZE(2964 2964) - FREESPACE(10 15) - KEYS(6 0) - INDEXED) - DATA (NAME(${clusterDataVar}) - CISZ(8192)) - INDEX (NAME(${clusterIndexVar})) /* // IEBCompare Utility - Includes JOB card //${userID}M JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=0M,COND=(16,LT) //STEP1 EXEC PGM=IEBCOMPR //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSNAME=${sysut1Var},DISP=SHR //SYSUT2 DD DSNAME=${sysut2Var},DISP=SHR //SYSIN DD * COMPARE TYPORG=PO /* // IEBCOPYB - Copy from one pds to sequential ds (new) - Includes JOB card //${userID}C JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=0M,COND=(16,LT) //STEPCOPY EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD DISP=SHR,DSN=${sysut1Var} //SYSUT2 DD DISP=(NEW,CATLG,DELETE),DSN=${sysut2Var}, // LIKE=${sysut1Var} Copy from one pds to sequential ds (existing) - Includes JOB Card //${userID} JOB MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=0M,COND=(16,LT) // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=0M,COND=(16,LT) // EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT2 DD DISP=SHR,DSN=${sysut1Var} //SYSUT1 DD DISP=SHR,DSN=${sysut2Var} User ID for job card SYSUT1 DSN SYSUT2 DSN Copy utility to copy VSAM to QSAM - Includes JOB Card //${userID}C JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=0M,COND=(16,LT) //AMSSTEP EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A //VSAM DD DSN=${vsamVar},DISP=OLD //SEQ DD DSN=${seqBackupVar},UNIT=SYSDA, // SPACE=(TRK,(10,10)), // DISP=(NEW,CATLG), // DCB=(LRECL=1000,BLKSIZE=1004,RECFM=VB) //SYSIN DD * REPRO - INFILE(VSAM) - OUTFILE(SEQ) VSAM DSN SEQ Backup file DSN Generate test data into a QSAM file - Includes JOB Card //${userID}C JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=0M,COND=(16,LT) //IEBDG EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=* //OUTFILE DD DSN=${existingDataset},DISP=SHR //SYSIN DD * DSD OUTPUT=(OUTFILE) FD NAME=${field1VarName},LENGTH=20,FORMAT=AL,ACTION=RP FD NAME=${field2VarName},LENGTH=20,PICTURE=20,'ALEXANDRIA ' FD NAME=${field3VarName},LENGTH=20,PICTURE=20,'RIDGEWOOD ' FD NAME=${field4VarName},LENGTH=2,PICTURE=2,'NJ' FD NAME=${field5VarName},LENGTH=5,PICTURE=5,'06758' CREATE QUANTITY=100,NAME=(${field1VarName},${field2VarName},${field3VarName},${field4VarName},${field5VarName}),FILL=X'40' END /* DSN for OUTDSN Name for Field 1 Name for Field 2 Name for Field 3 Name for Field 4 Name for Field 5 Basic form of IEBGENER utility - Includes JOB Card //${userID}G JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(1,1),REGION=70M,COND=(16,LT) //* //ALLOC EXEC PGM=IEBGENER,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD DSN=${sysut1Var},DISP=(NEW,CATLG,DELETE), // VOL=SER=${volserVar1},UNIT=3390,SPACE=(TRK,(1,1),RLSE), // DCB=(LRECL=80,BLKSIZE=800,RECFM=FB,DSORG=PS) //SYSUT2 DD DSN=${sysut2Var},DISP=(NEW,CATLG,DELETE), // VOL=SER=${volserVar2},UNIT=3390,SPACE=(TRK,(1,1),RLSE), // DCB=(LRECL=80,BLKSIZE=800,RECFM=FB,DSORG=PS) //SYSUT3 DD DSN=${sysut3Var},DISP=(NEW,CATLG,DELETE), // VOL=SER=${volserVar3},UNIT=3390,SPACE=(TRK,(1,1),RLSE), // DCB=(LRECL=80,BLKSIZE=800,RECFM=FB,DSORG=PS) // User ID for job card SYSUT1 DSN SYSUT2 DSN SYSUT3 DSN VOLSER for SYSUT1 VOLSER for SYSUT2 VOLSER for SYSUT3 IDCAMS REPRO, copy VSAM dataset to new sequential file. Note that Output LRECL must be bigger than VSAM record - Includes JOB Card //${userID}I JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=70M,COND=(16,LT) //* //REPROSTP EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=${sysut1Var},DISP=SHR //SYSUT2 DD DSN=${sysut2Var}, // DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(100,10),RLSE), // DCB=(RECFM=V,BLKSIZE=0,LRECL=${LRECL}) //SYSIN DD * REPRO - INFILE(SYSUT1) - OUTFILE(SYSUT2) /* // User ID for job card SYSUT1 DSN SYSUT2 DSN Output DSN LRECL Basic SORT - assumes that input and output datasts exist - Includes JOB Card //${USERID}S JOB , // MSGCLASS=H,MSGLEVEL=(1,1),TIME=(,4),REGION=0M,COND=(16,LT) //SORTSTEP EXEC PGM=SORT //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SORTIN DD DSN=${SORTIN},DISP=SHR //SORTOUT DD DSN=${SORTOUT},DISP=SHR //SYSIN DD * SORT FIELDS=(${SORTFLDS}) Create a specific subset of a file - New output file - Includes JOB Card //${userID} JOB 'MASTER FILE',MSGCLASS=S, // MSGLEVEL=(1,1),CLASS=D,REGION=0M //STEP001 EXEC PGM=SORT,REGION=0M //SORTIN DD DISP=SHR, // DSN=${sortDSNVar} //SYSIN DD * SORT FIELDS=COPY STARTREC=${startRecVar},ENDREC=${endRecVar} //SORTOUT DD LIKE=${sortDSNVar}, // DISP=(NEW,CATLG,DELETE), // DSN=${sortOutDSNVar} //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSOUT DD SYSOUT=* User ID for job card DSN for SORTIN DD STARTREC variable ENDREC variable SORTOUT DSN XMIT a File - Includes JOB Card - *https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.ieab600/xmitst.htm //${userID}9 JOB , // MSGLEVEL=(1,1),MSGCLASS=H,USER=&SYSUID, // NOTIFY=&SYSUID,TIME=1,REGION=70M //XMIT EXEC PGM=IKJEFT01,DYNAMNBR=20 //DDIN DD DISP=SHR,DSN=${ddinVar} //DDOUT DD DISP=(,CATLG),DSN=${ddoutVar}, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=27800), // SPACE=(TRK,(5,5,5),RLSE),UNIT=SYSDA //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * TRANSMIT ${transitVar} + NOCOPYLIST + DDNAME(DDIN) + NOEPILOG + NOLOG + NONOTIFY + OUTDDNAME(DDOUT) + PDS + NOPROLOG // User ID for job card DDIN DSN DDOUT DSN TRANSMIT DSN