/* REXX: GDGNEW test creating new gdg generation */ /* GDGNEW: SYSOUT TRAP of TSO COMMAND creating data cards */ /* TITLE: GDGNEW -- copy sequential create new GDG level */ /* Users: TSO user, usage copying to GDG from PC transferred*/ /* Entry: Used as a TSO clist */ /* ===> GDGNEW pcname OS.GDGNAME */ /* Contributed: 1991/09/20 David McRitchie */ /* EXAMPLE: ===> GDGNEW userid.FROMPC.DSN xxxx.xxxx.xxxx */ /* will create a new dataset xxxx.xxxx.xxxx(+1) */ arg From To if From = "" then do; /* Must be testing */ From = "is03.share.text(clist)" To = "is03.gdg.test" /* TSO dataset conventions for use w/o quotes */ PREFIX = SYSVAR(SYSPREF) if PREFIX = '' then prefix = SYSVAR(SYSUID) /* make up new names for To and From datasets */ To = PREFIX || '.GDG.TEST' From = PREFIX || '.share.text(clist)' end /*translate to and from to uppercase */ To = translate(To) From = translate(From) /*Check for existance of GDG */ x = OUTTRAP('var.') Address "TSO" "LISTC ENT('"||To||"') GDG " x = outtrap('OFF') if rc /= 0 then do say "GDG index has not been defined -- lines " var.0 do i = 1 to var.0; say "***"||I||" "||Var.I;end return 4 end x = outtrap('OFF') /* Trap output from the statement following OUTTRAP */ x = OUTTRAP('var.') Address "TSO" "LISTC LVL("||To||")" lastcc = rc x = outtrap('OFF') /* Check for not found condition */ I = index(Var.1,"NOT FOUND") If I /= 0 then Level = "0001" Else do if lastcc /= 0 then do Say 'Unexpected errors found' do i = 1 to var.0; say "***"||I||" "||Var.I;end return 4 end I = Var.0 - 1 Card = Var.I; L = length(Card) Level = substr(Card,L-6,4) Level = Level + 1 Level = right(Level,4,'0') /* right justify and zero fill*/ end GDGOUT = To||'.G'||Level||'V00' "ALLOCATE FILE(SYSUT2) DA('"||GDGOUT||"') UNIT(TESTDISK)", " SPACE(10 10) TRACK NEW REUSE RELEASE" "ALLOCATE FILE(SYSUT1) DA('"||From||"') SHR REUSE" "FREE FI(SYSUT1 SYSUT2 SYSPRINT)" "ALLOC FI(SYSPRINT) DUMMY" "ALLOC FI(SYSUT1) DA('"||From"') SHR" "ALLOC FI(SYSUT2) DA('"||GDGOUT||"') OLD" "ALLOC FI(SYSIN) DUMMY REUSE" "CALL 'SYS1.LINKLIB(IEBGENER)'" lastcc = rc if lastcc /= 0 then say IEBGENER in GDGNEW failed. "FREE FI(SYSUT1 SYSUT2)" "ALLOC FI(SYSIN) DA(*) REUSE" "ALLOC FI(SYSPRINT) DA(*) REUSE"