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