Skip to content

Instantly share code, notes, and snippets.

@jarhoads
Created November 16, 2016 14:17
Show Gist options
  • Save jarhoads/6741d2e15986fcf4d3559aef48f7cc94 to your computer and use it in GitHub Desktop.
Save jarhoads/6741d2e15986fcf4d3559aef48f7cc94 to your computer and use it in GitHub Desktop.
JCL PROC that allows for a REXX EXEC to be passed as a symbolic to FILEMGR Utility
//*************************************************************
//* FILE MANAGER FILTER PROC
//* EXECUTES FILEMGR UTILITY USING A USER DEFINED REXX EXEC
//*
//* SYMBOLICS:
//* &DSN1 - LAST QUALIFIER FOR THE INPUT DATASET
//* &DSN2 - LAST QUALIFIER FOR THE OUTPUT DATASET
//* &FMPROCS - USER LIBRARY WITH REXX EXEC ELEMENTS
//* MUST END IN .EXEC UNLESS OVERRIDDEN IN JCL
//* &FMEXEC - REXX EXEC WITH USER CODE FOR FILEMGR UTILITY
//*
//*************************************************************
//FMFLTPR0 PROC PGM1=FILEMGR,
// HQUAL=TK300,
// ENV=U,
// SYSNODE=JARSTM,
// DSN1=AT100R01,
// DSN2=AT100R01,
// GEN0=0,
// GEN1=+1,
// PRINT1=*,
// PRINT2=*,
// SPACE01='(80,(1,1),RLSE)',
// DCB01='(X000.MODLDSCB,RECFM=FB,LRECL=80)',
//*** LIBRARY FOR REXX EXEC WITH FILTER CODE
// FMPROCS=JARHOAD.REXX,
//*** MEMBER THAT HAS FILTER CODE
// FMEXEC=FILTER01
//*
//P05 EXEC PGM=&PGM1
//*
//*** EXPORT PROC SYMBOLIC TO JES
//*** MORE INFORMATION: z/OS V2R1.0 MVS JCL Reference
//*** Chapter 17
//EXPORTS EXPORT SYMLIST=(EXECMBR)
// SET EXECMBR=&FMEXEC
//*
//DSNIN DD DSN=&HQUAL..&ENV.G.&SYSNODE..&DSN1.(&GEN0.),
// DISP=SHR
//DSNOUT DD DSN=&HQUAL..&ENV.G.&SYSNODE..&DSN2.(&GEN1.),
// DISP=(NEW,CATLG,DELETE),
// AVGREC=K,
// SPACE=&SPACE01,
// DCB=&DCB01
//*
//*** LIBRARY TO LOOK IN FOR REXX MEMBERS
//FMNEXEC DD DISP=SHR,DSN=&FMPROCS..EXEC
//*
//*** SYMBOLS=JCLONLY - ALLOW JES SYMBOLS TO BE RESOLVED
//*** FOR THIS SYSIN DD
//*** THAT WERE DEFINED IN THIS JCL ONLY
//*** MORE INFORMATION: z/OS V2R1.0 MVS JCL Reference Chapter 5
//SYSIN DD *,SYMBOLS=JCLONLY
*+* FMC2FM: Beginning of File Manager statement output *+*
$$FILEM DSC INPUT=DSNIN,
$$FILEM OUTPUT=DSNOUT,
$$FILEM PROC=&EXECMBR
//*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//*
//ABNLTERM DD SYSOUT=*
//SYSOUS DD SYSOUT=&PRINT1.
//SYSABEND DD SYSOUT=*
//SYSUDUMP DD SYSOUT=&PRINT2.
//SYSABOUT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment