#BEGINBUCKET XXSASEDITX
#/ ----------------------------------------------------------------------
#/ This template generates a single execution of SASEDTX to perform symbol
#/ substitution into content from the CNTL.PREEDIT dataset.
#/ ----------------------------------------------------------------------
#/ -------------------------------------------------  
#/ -------------------------------------------------
#BEGINDEFS
#/ -------------------------------------------------
#/EXCEPTIONFORMISSINGSYMBOL
#SYMBOLCALLS SYSOUT;SSDDIR1;SSDDIR2;SSDDIR3;CUSTPRODQUAL;STAGEQUAL;ORDERENCODING;
#/ -------------------------------------------------
#BEGININSTANCEQUALIFIERS
#/ -------------------------------------------------
#IFNOTEQ {MVS2BDSCODE} XX #THEN DOESNOTQUALIFY
#IFEQ [STAGEQUAL] .SL #THEN QUALIFIES
#IFNOT [STAGEQUAL] #THEN QUALIFIES
#IFEQ [HOTFIX] TRUE #THEN NEXT
#THEN QUALIFIES
#NEXT
#/ if generating the promote job for hotfix, do not include code for configs, invokers
#IFEQ [PROMOTE] TRUE #THEN DOESNOTQUALIFY
#QUALIFIES
#CREATEINSTANCEFROMENTRY
#DOESNOTQUALIFY
#ENDQUALIFIERS
#/ -------------------------------------------------
#BEGINPREFIX 
#/ -------------------------------------------------
//SASEDT  EXEC PGM=[SASEDT],COND=(4,LT)
#IFNOT [XLUPDATED] #THEN PRODUTIL    #/ special case for when UTILIB is updated
#IFNOT [STAGEQUAL] #THEN PRODUTIL    #/ only if a staged install
//STEPLIB  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[CNTLDSN_SUFFIX].UTILIB,
//  DISP=SHR
//         DD DSN=[CUSTPRODQUAL].[CNTLDSN_SUFFIX].UTILIB,
//  DISP=SHR
#THEN DONEUTIL
#PRODUTIL 
//STEPLIB  DD DSN=[CUSTPRODQUAL].[CNTLDSN_SUFFIX].UTILIB,
//  DISP=SHR
#DONEUTIL
//SYSPRINT DD SYSOUT=[SYSOUT],DCB=BLKSIZE=121
//SYSTERM  DD SYSOUT=[SYSOUT],DCB=BLKSIZE=121
//SYSUT1 DD DATA,DLM='!!'   #/ This is added to have a no-harm set of lines to carry the //SYSUT2
./  ADD  NAME=$$NULFIL
* THIS FILE INTENTIONALLY EMPTY
!!
#/ -------------------------------------------------
#BEGININSTANCE      #/ Each instance is ./ ADD followed by fully qualified DSN for editing, as part of SASEDTX SYSIN stream.
#/ -------------------------------------------------
#/
#/ This looks dumb, repeating the FORALL block inside the IFEQ, but when the IFEQ is inside
#/ the FORALL block, it doesn't work. Until that problem is fixed, this is the only way.
#/
#IFEQ [PROMOTE] TRUE #THEN USEPROD
#FORALL <MEMBER>
#SET [ADDNAMEEQUALS] {UC(MODULENAME)}
//  DD DATA,DLM='!!'
./ ADD NAME=[ADDNAMEEQUALS]
!!
//  DD DISP=SHR,
//  DSN=[CUSTPRODQUAL][STAGEQUAL].[XX:LOQUAL]([ADDNAMEEQUALS])
#ENDFORALL
#THEN DONE
#USEPROD
#FORALL <MEMBER>
#SET [ADDNAMEEQUALS] {UC(MODULENAME)}
//  DD DATA,DLM='!!'
./ ADD NAME=[ADDNAMEEQUALS]
!!
//  DD DISP=SHR,
//  DSN=[CUSTPRODQUAL].[XX:LOQUAL]([ADDNAMEEQUALS])
#ENDFORALL
#DONE
#/ -------------------------------------------------
#BEGINSUFFIX 
#/ -------------------------------------------------
//*
//SYSUT2 DD DSN=&&EDITD,DISP=(NEW,PASS),
//       SPACE=(6160,(1000,250)),UNIT=[TMPUNI],
//       DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160)
#IFEQ [PROMOTE] TRUE #THEN USEPROMOTE
//SYSIN DD DSN=[CNTLDSN](SYMLIST),
//  DISP=SHR
#THEN DIDIT
#USEPROMOTE
//SYSIN DD DSN=[CNTLDSN](SYMLISTP),
//  DISP=SHR
#DIDIT
//      DD DSN=[CNTLDSN](PRDMIT),
//  DISP=SHR
//*
//UPDTE    EXEC PGM=IEBUPDTE,PARM='NEW',COND=(4,LT)
//SYSIN    DD DSN=&&EDITD,DISP=(OLD,DELETE)
//SYSPRINT DD SYSOUT=[SYSOUT]
//SYSUT2   DD DSN=[CNTLDSN],
//  DISP=OLD
//*
#ENDBUCKET 