zOs/REXX/MARECANA
/* REXX ****************************************************************
MARECANA MASSRECOVERY ANALYSE PHASE
***********************************************************************/
PARSE ARG CODE
INTERPRET CODE
ST = 'vcat'
if v.st.0 <> 1 then do
say 'nur ein vcat erlaubt nicht' v.st.0
exit 12
end
CALL RYXA00 v.st.1, SYSVAR(SYSNODE), V.ANAPRE, v.DSNPRE,
, v.REXXLIB, v.SKELS
EXIT 0 /* ------------- PGM END ------------ */
/* REXX ****************************************************************
MASSRECOVERY ANALYSE PHASE
***********************************************************************/
RYXA00: PROCEDURE
PARSE UPPER ARG VCAT, RZX, ANAPRE, DSNPRE, REXXLIB, SKELS
ADDRESS ISPEXEC "VPUT (VCAT ) PROFILE"
ADDRESS ISPEXEC "VPUT (RZX ) PROFILE"
ADDRESS ISPEXEC "VPUT (ANAPRE ) PROFILE"
ADDRESS ISPEXEC "VPUT (DSNPRE ) PROFILE"
ADDRESS ISPEXEC "VPUT (REXXLIB) PROFILE"
ADDRESS ISPEXEC "VPUT (SKELS ) PROFILE"
CALL SUBGENER 'S' /* --- TAYLORING FOR TABLESPACES --- */
CALL SUBGENER 'X' /* --- TAYLORING FOR INDEXSPACES --- */
ADDRESS ISPEXEC
"EDIT DATASET('"anaPre"ANA)') MACRO(RYXEM02)"
RETURN /* ------------- PGM END ------------ */
/* -------------------------------------------------------------- */
/* ------- SUBGENER: PROCESS 1) TS 2) IX SPACE TAXLORING ------- */
/* -------------------------------------------------------------- */
SUBGENER:
PARSE UPPER ARG SPACTYP
/* --- S: TAYLORING FOR TABLESPACES --- */
/* --- X: TAYLORING FOR INDEXSPACES --- */
IF ^(SPACTYP = 'S' | SPACTYP = 'X') THEN EXIT
VCNTL = dsnPre"."SPACTYP".CNTL"
VLIB = dsnPre"."SPACTYP
ADDRESS ISPEXEC "VPUT (VLIB) PROFILE"
/* ---- ALLOC LIBRARY FOR TAYLORED SKELETON MEMBERS ------- */
ADDRESS TSO
"ALLOC DS('"VCNTL"') NEW TRACK SPACE(5,5) DATACLAS(FB0080P0)
DSORG(PO) DIR(20)"
/* ---- COPY, EDIT AND SAVE SKELETONS ------- */
CALL SUBEDIT RYXEL2
CALL SUBEDIT RYXEL4
CALL SUBEDIT RYXEL5
CALL SUBEDIT RYXEL6
CALL SUBEDIT RYXEL7
CALL SUBEDIT RYXEL8
CALL SUBEDIT RYXEL9
CALL SUBEDIT RYXE1
CALL SUBEDIT RYXEM03
IF SPACTYP = 'S' THEN CALL SUBEDIT RYJANATS
IF SPACTYP = 'X' THEN CALL SUBEDIT RYJANAIX
/* ---- FREE LIBRARY FOR TAYLORED SKELETON MEMBERS ------- */
ADDRESS TSO "FREE DS('"VCNTL"')"
RETURN
/* -------------------------------------------------------------- */
/* ------- SUBEDIT: EDIT SKELETON MEMBERS ------- */
/* -------------------------------------------------------------- */
SUBEDIT:
PARSE UPPER ARG MEMBNAM .
parm = EM01
ADDRESS ISPEXEC "VPUT (MEMBNAM ) PROFILE"
ADDRESS ISPEXEC
"EDIT DATASET('"VCNTL"("MEMBNAM")') MACRO(MARECANE) PARM(parm)"
RETURN