#BEGINBUCKET XXCOPYOUT
#/ -------------------------------------------------
#BEGININSTANCEQUALIFIERS
#/ -------------------------------------------------
#/ For hotfixes, we have to process even if there is no
#/ XX content, because we ran SASEDTX to generate staged
#/ versions of all the configs and invoking scripts.
#/ In a hotfix, the production CNTL.PREEDIT is copied
#/ up to the hotfix image and this template creates the
#/ invokers for hotfix testing. In the promote job for a
#/ hotfix we don't want to copy the configs to production,
#/ but for an add-on we do. The STAGEQUAL of .SL indicates
#/ that the install is an add-on.
#IFNOTEQ {MVS2BDSCODE} XX #THEN DOESNOTQUALIFY
#IFEQ [STAGEQUAL] .SL #THEN QUALIFIES
#IFNOT [STAGEQUAL] #THEN QUALIFIES
#IFEQ [HOTFIX] TRUE #THEN NEXT
#THEN QUALIFIES
#NEXT
#IFEQ [PROMOTE] TRUE #THEN DOESNOTQUALIFY
#QUALIFIES
#SET [PRODUCT12BYTE] {PRODUCT}
#INSTANCEUNIQUEKEY [PRODUCT12BYTE] #NOTUNIQUE NEXTPRODUCT
#CREATEINSTANCEFROMENTRY
#NEXTPRODUCT
#/ #IFNOTEQ {PRODUCT} 'whatever' #THEN NEXTPRODUCT
#/  Whatever rename stuff
#/ #NEXTPRODUCT
#DOESNOTQUALIFY
#ENDQUALIFIERS
#/ -------------------------------------------------
#BEGINPREFIX
#/ -------------------------------------------------
//COPYOUT  EXEC PGM=IEBCOPY,COND=(4,LT)
//SYSPRINT DD SYSOUT=[SYSOUT]
//SYSUT3   DD UNIT=[TMPUNI],SPACE=(TRK,(1,1))
//SYSUT4   DD UNIT=[TMPUNI],SPACE=(TRK,(1,1))
//DDIN     DD DSN=[CNTLDSN],DISP=SHR
//DDINXF   DD DSN=[CUSTPRODQUAL].[XF:LOQUAL],
//      DISP=SHR
#IF [INSTALL-TO-STAGE] #THEN NEXT
//DDOTXN  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[XN:LOQUAL],
//      DISP=(OLD,KEEP)
#NEXT
#IFEQ [PROMOTE] TRUE #THEN DOPROMOTE
//DDOTRC  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[RC:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTRX  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[RX:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTXC  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[XC:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTXF  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[XF:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTXP  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[XP:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTBZ  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[BZ:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTD4  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[D4:LOQUAL],
//      DISP=(OLD,KEEP)
#IFEQ [HOTFIX] TRUE #THEN SKIPXZ
//DDOTXZ  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[XZ:LOQUAL],
//      DISP=(OLD,KEEP)
#SKIPXZ
#INSTANCESMISSINGPRODUCT raptor #THEN NEXT
//DDOTOC  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[OC:LOQUAL],
//      DISP=(OLD,KEEP)
#NEXT
#THEN DONE
#DOPROMOTE
//DDOTRC  DD DSN=[CUSTPRODQUAL].[RC:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTRX  DD DSN=[CUSTPRODQUAL].[RX:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTXC  DD DSN=[CUSTPRODQUAL].[XC:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTXF  DD DSN=[CUSTPRODQUAL].[XF:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTXP  DD DSN=[CUSTPRODQUAL].[XP:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTBZ  DD DSN=[CUSTPRODQUAL].[BZ:LOQUAL],
//      DISP=(OLD,KEEP)
//DDOTD4  DD DSN=[CUSTPRODQUAL].[D4:LOQUAL],
//      DISP=(OLD,KEEP)
#IFEQ [HOTFIX] TRUE #THEN SKIPXZ
//DDOTXZ  DD DSN=[CUSTPRODQUAL].[XZ:LOQUAL],
//      DISP=(OLD,KEEP)
#SKIPXZ
#INSTANCESMISSINGPRODUCT raptor #THEN NEXT
//DDOTOC  DD DSN=[CUSTPRODQUAL].[OC:LOQUAL],
//      DISP=(OLD,KEEP)
#NEXT
#/ Copy COMMON from staged area to production if promoting
//DDINCF  DD DSN=[CUSTPRODQUAL][STAGEQUAL].[XF:LOQUAL],
//      DISP=SHR
#DONE
//SYSIN DD DATA,DLM='!!'
#/ -------------------------------------------------
#BEGININSTANCE      #/ Each instance is ./ ADD followed by fully qualified DSN for editing, as part of SASEDTX SYSIN stream.
#/ -------------------------------------------------
COMPRC COPY INDD=((DDOTRC,R)),OUTDD=DDOTRC
COMPRX COPY INDD=((DDOTRX,R)),OUTDD=DDOTRX
COMPXC COPY INDD=((DDOTXC,R)),OUTDD=DDOTXC
COMPXF COPY INDD=((DDOTXF,R)),OUTDD=DDOTXF
#IF [INSTALL-TO-STAGE] #THEN NEXT
COMPXN COPY INDD=((DDOTXN,R)),OUTDD=DDOTXN
#NEXT
COMPXP COPY INDD=((DDOTXP,R)),OUTDD=DDOTXP
COMPBZ COPY INDD=((DDOTBZ,R)),OUTDD=DDOTBZ
COMPD4 COPY INDD=((DDOTD4,R)),OUTDD=DDOTD4
#IFNOTEQ {PRODUCT} raptor #THEN NEXT
COMPOC COPY INDD=((DDOTOC,R)),OUTDD=DDOTOC
CPOC COPY INDD=((DDIN,R)),OUTDD=DDOTOC
  S M=RAPTISP
  S M=RAPTMON
  S M=RAPTPARM
  S M=RAPTVER
  S M=RAPTXMS
  S M=SASOSE
  S M=SMOESMF
#NEXT
#IFEQ [HOTFIX] TRUE #THEN DOZOSTOOLS
#IFNOTEQ {PRODUCT} zostools #THEN NOTZOSTOOLS
#DOZOSTOOLS
CPBZ COPY INDD=((DDIN,R)),OUTDD=DDOTBZ
  S M=SPNCCNTL
  S M=SPNCPARM
  S M=SPNCSHEL
  S M=SPNOCNTL
  S M=SPNOPARM
  S M=SPNOSHEL
CPD4 COPY INDD=((DDIN,R)),OUTDD=DDOTD4
  S M=DQSETUP
#/ NO SID PROCESSING FOR HOTFIXES
#IFEQ [HOTFIX] TRUE #THEN SKIPXZ
CPXZ COPY INDD=((DDIN,R)),OUTDD=DDOTXZ
  S M=(($RENEW,RENEW))
  S M=RENEWPRM
  S M=$SIDRX
  S M=SIDJOBX
#SKIPXZ
#/ THIS SECTION TO COPY UP CUSTOMER'S SITE TO STAGED FOR ACTION C
#IFNOT [INSTALL-TO-STAGE] #THEN NOCOPYSITE
#IFEQ [PROMOTE] TRUE #THEN NOCOPYSITE     #/ SKIP DURING PROMOTE TO PRODUCTION
CXXF COPY INDD=((DDINXF,R)),OUTDD=DDOTXF
  S M=SITE
#NOCOPYSITE
#/ ONLY COPY EDITED SITE TO XF FOR ACTION A.
CPXF COPY INDD=((DDIN,R)),OUTDD=DDOTXF
#IFNOT [INSTALL-NEW] #THEN NONEWSITE
  S M=((CFGSITE,SITE))
#NONEWSITE
  S M=((CFGBAT,BATCH))
  S M=((CFGCOMM,COMMON))
  S M=((CFGTSO,TSO))
#IFNOTEQ [ORDERENCODING] C0 #THEN NEXTENCODE
  S M=((CFGENC0,ENC0))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] F0 #THEN NEXTENCODE
  S M=((CFGENF0,ENF0))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] R0 #THEN NEXTENCODE
  S M=((CFGENR0,ENR0))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] W0 #THEN NEXTENCODE
  S M=((CFGENW0,ENW0))
  S M=((CFGESW0,ESW0))
  S M=((CFGFRW0,FRW0))
  S M=((CFGDBW0,DBW0))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] W2 #THEN NEXTENCODE
  S M=((CFGENW2,ENW2))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] W3 #THEN NEXTENCODE
  S M=((CFGENW3,ENW3))
  S M=((CFGDEW3,DEW3))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] W5 #THEN NEXTENCODE
  S M=((CFGENW5,ENW5))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] W6 #THEN NEXTENCODE
  S M=((CFGENW6,ENW6))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] W7 #THEN NEXTENCODE
  S M=((CFGENW7,ENW7))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] W8 #THEN NEXTENCODE
  S M=((CFGENW8,ENW8))
  S M=((CFGESW8,ESW8))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] W9 #THEN NEXTENCODE
  S M=((CFGENW9,ENW9))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] WA #THEN NEXTENCODE
  S M=((CFGENWA,ENWA))
  S M=((CFGFRWA,FRWA))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] WB #THEN NEXTENCODE
  S M=((CFGENWB,ENWB))
  S M=((CFGDEWB,DEWB))
  S M=((CFGFRWB,FRWB))
#NEXTENCODE
#IFNOTEQ [ORDERENCODING] WU #THEN NEXTENCODE
  S M=((CFGENWU,ENWU))
  S M=((CFGDBWU,DBWU))
#NEXTENCODE
#/ Copy COMMON from staged to prod if promoting
#IFNOTEQ [PROMOTE] TRUE #THEN SKIPCF 
CPCF COPY INDD=((DDINCF,R)),OUTDD=DDOTXF
  S M=COMMON
#SKIPCF
CPRC COPY INDD=((DDIN,R)),OUTDD=DDOTRC
  S M=REXXCFG
  S M=REXXDB
  S M=REXXMSG
#IFNOT [INSTALL-NEW] #THEN NONEWSITE
  S M=REXXSITE
#NONEWSITE
CPRX COPY INDD=((DDIN,R)),OUTDD=DDOTRX
 S M=SASTREXX
 S M=SASRXXIT
#IFEQ [HOST] z64 #THEN SKIPSCH
 S M=SCHGETRC
#SKIPSCH
#IFEQ [ORDERENCODING] C0 #: S M=((REXTENC0,REXXENC0))
#IFEQ [ORDERENCODING] F0 #: S M=((REXTENF0,REXXENF0))
#IFEQ [ORDERENCODING] R0 #: S M=((REXTENR0,REXXENR0))
#IFEQ [ORDERENCODING] W0 #: S M=((REXTENW0,REXXENW0))
#IFEQ [ORDERENCODING] W0 #: S M=((REXTESW0,REXXESW0))
#IFEQ [ORDERENCODING] W0 #: S M=((REXTFRW0,REXXFRW0))
#IFEQ [ORDERENCODING] W0 #: S M=((REXTDBW0,REXXDBW0))
#IFEQ [ORDERENCODING] W2 #: S M=((REXTENW2,REXXENW2))
#IFEQ [ORDERENCODING] W3 #: S M=((REXTENW3,REXXENW3))
#IFEQ [ORDERENCODING] W3 #: S M=((REXTDEW3,REXXDEW3))
#IFEQ [ORDERENCODING] W5 #: S M=((REXTENW5,REXXENW5))
#IFEQ [ORDERENCODING] W6 #: S M=((REXTENW6,REXXENW6))
#IFEQ [ORDERENCODING] W7 #: S M=((REXTENW7,REXXENW7))
#IFEQ [ORDERENCODING] W8 #: S M=((REXTENW8,REXXENW8))
#IFEQ [ORDERENCODING] W8 #: S M=((REXTESW8,REXXESW8))
#IFEQ [ORDERENCODING] W9 #: S M=((REXTENW9,REXXENW9))
#IFEQ [ORDERENCODING] WA #: S M=((REXTENWA,REXXENWA))
#IFEQ [ORDERENCODING] WA #: S M=((REXTFRWA,REXXFRWA))
#IFEQ [ORDERENCODING] WB #: S M=((REXTENWB,REXXENWB))
#IFEQ [ORDERENCODING] WB #: S M=((REXTDEWB,REXXDEWB))
#IFEQ [ORDERENCODING] WB #: S M=((REXTFRWB,REXXFRWB))
#IFEQ [ORDERENCODING] WU #: S M=((REXTENWU,REXXENWU))
#IFEQ [ORDERENCODING] WU #: S M=((REXTDBWU,REXXDBWU))
CPXC COPY INDD=((DDIN,R)),OUTDD=DDOTXC
#IFEQ [ORDERENCODING] C0 #: S M=CLSTENC0
#IFEQ [ORDERENCODING] F0 #: S M=CLSTENF0
#IFEQ [ORDERENCODING] R0 #: S M=CLSTENR0
#IFEQ [ORDERENCODING] W0 #: S M=CLSTENW0
#IFEQ [ORDERENCODING] W0 #: S M=CLSTESW0
#IFEQ [ORDERENCODING] W0 #: S M=CLSTFRW0
#IFEQ [ORDERENCODING] W0 #: S M=CLSTDBW0
#IFEQ [ORDERENCODING] W2 #: S M=CLSTENW2
#IFEQ [ORDERENCODING] W3 #: S M=CLSTENW3
#IFEQ [ORDERENCODING] W3 #: S M=CLSTDEW3
#IFEQ [ORDERENCODING] W5 #: S M=CLSTENW5
#IFEQ [ORDERENCODING] W6 #: S M=CLSTENW6
#IFEQ [ORDERENCODING] W7 #: S M=CLSTENW7
#IFEQ [ORDERENCODING] W8 #: S M=CLSTENW8
#IFEQ [ORDERENCODING] W8 #: S M=CLSTESW8
#IFEQ [ORDERENCODING] W9 #: S M=CLSTENW9
#IFEQ [ORDERENCODING] WA #: S M=CLSTENWA
#IFEQ [ORDERENCODING] WA #: S M=CLSTFRWA
#IFEQ [ORDERENCODING] WB #: S M=CLSTENWB
#IFEQ [ORDERENCODING] WB #: S M=CLSTDEWB
#IFEQ [ORDERENCODING] WB #: S M=CLSTFRWB
#IFEQ [ORDERENCODING] WU #: S M=CLSTENWU
#IFEQ [ORDERENCODING] WU #: S M=CLSTDBWU
CPXP COPY INDD=((DDIN,R)),OUTDD=DDOTXP
#IFEQ [ORDERENCODING] C0 #: S M=PROCENC0
#IFEQ [ORDERENCODING] F0 #: S M=PROCENF0
#IFEQ [ORDERENCODING] R0 #: S M=PROCENR0
#IFEQ [ORDERENCODING] W0 #: S M=PROCENW0
#IFEQ [ORDERENCODING] W0 #: S M=PROCESW0
#IFEQ [ORDERENCODING] W0 #: S M=PROCFRW0
#IFEQ [ORDERENCODING] W0 #: S M=PROCDBW0
#IFEQ [ORDERENCODING] W2 #: S M=PROCENW2
#IFEQ [ORDERENCODING] W3 #: S M=PROCENW3
#IFEQ [ORDERENCODING] W3 #: S M=PROCDEW3
#IFEQ [ORDERENCODING] W5 #: S M=PROCENW5
#IFEQ [ORDERENCODING] W6 #: S M=PROCENW6
#IFEQ [ORDERENCODING] W7 #: S M=PROCENW7
#IFEQ [ORDERENCODING] W8 #: S M=PROCENW8
#IFEQ [ORDERENCODING] W8 #: S M=PROCESW8
#IFEQ [ORDERENCODING] W9 #: S M=PROCENW9
#IFEQ [ORDERENCODING] WA #: S M=PROCENWA
#IFEQ [ORDERENCODING] WA #: S M=PROCFRWA
#IFEQ [ORDERENCODING] WB #: S M=PROCENWB
#IFEQ [ORDERENCODING] WB #: S M=PROCDEWB
#IFEQ [ORDERENCODING] WB #: S M=PROCFRWB
#IFEQ [ORDERENCODING] WU #: S M=PROCENWU
#IFEQ [ORDERENCODING] WU #: S M=PROCDBWU
#/ The next line compresses INSTALL.CNTL. Note that this is a no-op
#/ if INSTALL.CNTL is a PDS/E - IEBCOPY just ignores it. The reason
#/ it is left in is to cover the case of an existing install that
#/ still has INSTALL.CNTL as a standard PDS. It needs to be compressed.
COMPR COPY INDD=((DDIN,R)),OUTDD=DDIN
COMPR1 COPY INDD=((DDOTRC,R)),OUTDD=DDOTRC
COMPR2 COPY INDD=((DDOTRX,R)),OUTDD=DDOTRX
COMPR3 COPY INDD=((DDOTXC,R)),OUTDD=DDOTXC
COMPR4 COPY INDD=((DDOTXF,R)),OUTDD=DDOTXF
COMPR5 COPY INDD=((DDOTXP,R)),OUTDD=DDOTXP
COMPR6 COPY INDD=((DDOTBZ,R)),OUTDD=DDOTBZ
COMPR7 COPY INDD=((DDOTD4,R)),OUTDD=DDOTD4
#IFEQ [HOTFIX] TRUE #THEN SKIPXZ
COMPXZ COPY INDD=((DDOTXZ,R)),OUTDD=DDOTXZ
#SKIPXZ
#NOTZOSTOOLS
#IFNOTEQ {PRODUCT} raptor #THEN NEXT
COMPR8 COPY INDD=((DDOTOC,R)),OUTDD=DDOTOC
#NEXT
#/ -------------------------------------------------
#BEGINSUFFIX
#/ -------------------------------------------------
!!
//*
#ENDBUCKET
