ISREDIT MACRO (DSN ENTRY VOLSER) /* EXAMPLE ==> @AMSRCAT * /* EXAMPLE ==> @AMSRCAT INTERNAL.SMF.IV3H0101 /* EXAMPLE ==> @AMSRCAT PSAF LEVEL /* EXAMPLE ==> @AMSRCAT PSAF LEVEL MVSX20 /* EXAMPLE ==> @AMSRCAT PSAF LEVEL MVSD (AS IN MVSDLB) /* AUTHOR -- DAVID MCRITCHIE, 1987/05/29 */ /* PURPOSE: ABILITY TO REDEFINE GDG LIMIT */ /* ==> @AMSRCAT INTERNAL.SMF.IV3H0101 /* PURPOSE: ABILITY TO RECATALOG NVSAM ENTRIES INDIRECTLY */ /* ==> @AMSRCAT PSAF LEVEL ?VOLSER? IF &STR(&ENTRY) = &STR() THEN SET ENTRY = ENTRY IF &STR(&ENTRY) = &STR(LVL) THEN SET ENTRY = LEVEL IF &STR(&ENTRY) ^= ENTRY AND &STR(&ENTRY) ^= LEVEL - THEN DO SET &ZEDSMSG = &STR(&ENTRY?) SET &ZEDLMSG = &STR(&ENTRY. 2ND PARAMETER UNKNOWN TO CLIST + @AMSRCAT, MUST BE ENTRY | LEVEL) ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(12) END IF &LENGTH(&STR(&VOLSER)) > 6 - THEN DO SET &ZEDSMSG = &STR(&VOLSER?) SET &ZEDLMSG = &STR(&VOLSER. -- 3RD PARAMETER VOLSER IS + LIMITED TO 6 CHARACTERS) ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(12) END IF LEVEL ^= &STR(&ENTRY) THEN SET VOLSER = &STR() SET XDSN0 = XDSN0 SET XVOL0 = XVOL0 SET RC = &STR(0) SET DSN = &STR(&SYSCAPS(&STR(&DSN))) SET B = &STR( ) SET B = &STR(&B.&B.&B.) SET XSEQ = &STR(&B.) IF &STR(&DSN) = &STR(*) THEN SET DSN = PHO.INTERNAL.BILLBACK.IV7B0202 IF &SUBSTR(8:8,&DSN.&B.) = &STR( ) THEN DO IF ENTRY = &STR(&ENTRY) THEN DO WRITE "&DSN." IS TOO SHORT FOR A DSNAME EXIT CODE(8) END END SET LP = &STR(( SET RP = &STR()) SET SYSOUTTRAP = 4600 LISTCAT &ENTRY.('&DSN.') ALL IF &LASTCC ^= 0 THEN EXIT CODE(12) SET N = &SYSOUTLINE SET SYSOUTTRAP = 0 SET RC = 0 /* FILES TO BE CHECKED LATER RACF/BROWSE */ SET I = 0 SET G = 0 SET HIT2 = 0 SET HIT1 = 0 DO WHILE &I <= &N SET X = &STR(&&SYSOUTLINE&I..) SET X = &STR(&X.) /* WRITE &I. &RC. |1...5...10...15...20...25...30...35...40...+ 45...50...55...60 /* WRITE &I. &RC. |&X. IF &SUBSTR(1:3,&STR(&X.&B)) = &STR(IDC) THEN WRITE &X. IF &SUBSTR(1:16,&STR(&X.&B.)) = &STR( NONVSAM ---- ) THEN DO SET RC = &RC + 1 IF DEBUG = &DEBUG THEN WRITE &I. &RC. |&X. SET XDSN&RC = &SUBSTR(17:60,&STR(&X.&B)) SET XVOL = &STR() SET XSEQ = &STR() SET XDEV = &STR() GOTO NIX END IF &SUBSTR(3:11,&STR(&X.&B.)) = &STR( IN-CAT) THEN DO SET CAT = &SUBSTR(17:60,&STR(&X.&B)) SET CAT = &CAT SET CAT&RC = &CAT GOTO NIX END IF &SUBSTR(1:12,&STR(&X.&B.)) = &STR(NONVSAM ----) THEN DO SET RC = &RC + 1 IF &RC < 40 THEN WRITE &X. -- LINE 73 ELSE DO SET A = &RC / 10 SET A = &A * 10 IF &RC = &A THEN WRITE &X. -- @73 -- &A END IF DEBUG = &DEBUG THEN WRITE &I. &RC. |&X. SET XDSN&RC = &SUBSTR(17:60,&STR(&X.&B)) SET XVOL = &STR() SET XSEQ = &STR() SET XDEV = &STR() GOTO NIX END IF &SUBSTR(1:14,&STR(&X.&B.)) = &STR( LIMIT--) THEN DO SET K = 31 SET LIMIT = LPK: IF &SUBSTR(&K,&STR(&X.&B)) >= &STR(0) THEN DO SET LIMIT=&SUBSTR(&K,&STR(&X.&B))&LIMIT. SET K = &K - 1 GOTO LPK END SET SCRATCH = &SUBSTR(33:80,&X.&B.) SET SCRATCH = &SCRATCH. GOTO NIX END IF &SUBSTR(1:13,&STR(&X.&B.)) = &STR( VOLSER) THEN DO IF &RC = 0 THEN DO WRITE &X. -- LINE 95 GOTO NIX END IF &STR(&XVOL) ^= &STR() THEN SET XVOL = + &STR(&XVOL.,)&SUBSTR(26:31,&STR(&X.&B)) ELSE SET XVOL = &SUBSTR(26:31,&STR(&X.&B)) SET XVOL&RC = &STR(&XVOL) /* -------------------------------------------- */ SET TDEV = &SUBSTR(52:59,&STR(&X.&B)) IF &STR(&TDEV) = 3010200E THEN SET TDEV = &STR(3380 ) IF &STR(&TDEV) = 3010200F THEN SET TDEV = &STR(3390 ) IF &STR(&TDEV) = 24008003 THEN SET TDEV = &STR(3400-3 ) IF &STR(&TDEV) = 34208003 THEN SET TDEV = &STR(3400-4 ) IF &STR(&TDEV) = 32008003 THEN SET TDEV = &STR(3400-5 ) IF &STR(&TDEV) = 32108003 THEN SET TDEV = &STR(3400-6 ) IF &STR(&TDEV) = 78008080 THEN SET TDEV = &STR(3480 ) IF &STR(&XDEV) ^= &STR() THEN SET XDEV = &STR(&XDEV.,&TDEV.) ELSE SET XDEV = &STR(&TDEV) SET XDEV&RC = &STR(&XDEV) /* -------------------------------------------- */ SET TSEQ = &SUBSTR(85:89,&STR(&X.&B)) IF &SUBSTR(1:4,&STR(&TSEQ.&B.)) = &STR(----) THEN SET TSEQ = + &SUBSTR(5:5,&STR(&TSEQ)) IF &SUBSTR(1:3,&STR(&TSEQ.&B.)) = &STR(---) THEN SET TSEQ = + &SUBSTR(4:5,&STR(&TSEQ)) IF &SUBSTR(1:2,&STR(&TSEQ.&B.)) = &STR(--) THEN SET TSEQ = + &SUBSTR(3:5,&STR(&TSEQ)) IF &SUBSTR(1:1,&STR(&TSEQ.&B.)) = &STR(-) THEN SET TSEQ = + &SUBSTR(2:5,&STR(&TSEQ)) IF &STR(&XSEQ) ^= &STR() THEN SET XSEQ = &STR(&XSEQ.,&TSEQ.) ELSE SET XSEQ = &STR(&TSEQ.) SET XSEQ&RC = &STR(&XSEQ.) /* -------------------------------------------- */ IF DEBUG = &DEBUG THEN WRITE &I. &RC. |&X. GOTO NIX END NIX: - SET I = &I. + 1 END /**************** SET XDSN = &&XDSN&RC IF ENTRY = &ENTRY THEN WHOGOT &XDSN IF BROWSE = &BROWSE THEN DO $BROWSE &XDSN IF ONLY = &ONLY THEN DO WRITE USED&LP.&RC.&RP. OF &STR(&LIMIT) END END /**************** SET I = 0 IF ENTRY = &ENTRY THEN DO IF &EVAL(&RC) = &EVAL(0) THEN EXIT CODE(12) END ISREDIT LINE_AFTER .ZLAST = "//+ * ---- GENERATED BY THE CLIST ==> @AMSRCAT &DSN." ISREDIT LINE_AFTER .ZLAST = "// EXEC AMS,SYSOUT=V " DO WHILE &I < &RC SET I = &I + 1 SET XDSN = &&XDSN&I SET XDSN = &XDSN IF &STR(&VOLSER) = &STR() THEN DO ISREDIT LINE_AFTER .ZLAST = " DELETE &XDSN. NOSCRATCH - " ISREDIT LINE_AFTER .ZLAST = " CATALOG(&CAT) " END END IF LEVEL ^= &ENTRY THEN DO ISREDIT LINE_AFTER .ZLAST = " DELETE &DSN GDG NOFORCE -" ISREDIT LINE_AFTER .ZLAST = " CATALOG(&CAT) " IF &EVAL(&RC) = &EVAL(0) THEN EXIT CODE(12) WRITE USED&LP.&RC.&RP. OF &STR(&LIMIT) ISREDIT LINE_AFTER .ZLAST = "//+ * ---- GENERATED BY THE CLIST ==> @AMSRCAT &DSN." ISREDIT LINE_AFTER .ZLAST = "//+ * ---- LIMIT(&LIMIT.) FOUND &RC. DATASETS" ISREDIT LINE_AFTER .ZLAST = "// EXEC AMS,SYSOUT=V " ISREDIT LINE_AFTER .ZLAST = " DEFINE GDG - " ISREDIT LINE_AFTER .ZLAST = " (NAME(&DSN) - " IF &EVAL(&RC.+10000) > &EVAL(&LIMIT.+10000) THEN - ISREDIT LINE_AFTER .ZLAST = " LIMIT(&RC.) &SCRATCH.) - " ELSE - ISREDIT LINE_AFTER .ZLAST = " LIMIT(&LIMIT.) &SCRATCH.) - " ISREDIT LINE_AFTER .ZLAST = " CATALOG(&CAT) " END ISREDIT LABEL .ZLAST = .RCAT 0 SET I = 0 DO WHILE &I < &RC SET I = &I + 1 SET XDSN = &&XDSN&I SET XDSN = &XDSN SET XVOL = &STR(&&XVOL&I) SET XDEV = &&XDEV&I SET XSEQ = &&XSEQ&I IF &STR(&XSEQ.) = &STR(0) THEN SET XSEQ = &STR(1) IF &STR(&VOLSER) ^= &STR() THEN DO SET L = &LENGTH(&STR(&VOLSER)) IF &SUBSTR(1:&L,&STR(&XVOL)) ^= &STR(&VOLSER) THEN GOTO XVOLS ISREDIT LINE_AFTER .ZLAST = " DELETE &XDSN. NOSCRATCH - " ISREDIT LINE_AFTER .ZLAST = " CATALOG(&CAT) " END WRITE &I.&STR(/)&RC &XDSN &STR(&LP.-)&EVAL(&RC.-&I)&STR(&RP) WRITE &STR( )&XVOL &XDEV &XSEQ ISREDIT LINE_AFTER .ZLAST = " DEFINE NVSAM - " ISREDIT LINE_AFTER .ZLAST = " (NAME(&XDSN.) - " IF &SUBSTR(54:54,&XDEV.&B.) = &STR(,) THEN DO ISREDIT LINE_AFTER .ZLAST = " DEVT(&SUBSTR(1:54,&XDEV) - " SET XDEV = &SUBSTR(55:&LENGTH(&XDEV),&XDEV) DO WHILE &SUBSTR(54:54,&XDEV.&B) = &STR(,) ISREDIT LINE_AFTER .ZLAST = " &SUBSTR(1:54,&XDEV) - " SET XDEV = &SUBSTR(55:&LENGTH(&XDEV),&XDEV) END ISREDIT LINE_AFTER .ZLAST = " &XDEV.) - " END ELSE DO ISREDIT LINE_AFTER .ZLAST = " DEVT(&XDEV) - " END IF &SUBSTR(42:42,&XVOL.&B.) = &STR(,) THEN DO ISREDIT LINE_AFTER .ZLAST = " VOL(&SUBSTR(1:42,&XVOL) - " SET XVOL = &SUBSTR(43:&LENGTH(&XVOL),&XVOL) DO WHILE &SUBSTR(42:42,&XVOL.&B) = &STR(,) ISREDIT LINE_AFTER .ZLAST = " &SUBSTR(1:42,&XVOL) - " SET XVOL = &SUBSTR(43:&LENGTH(&XVOL),&XVOL) END ISREDIT LINE_AFTER .ZLAST = " &XVOL.) - " END ELSE DO ISREDIT LINE_AFTER .ZLAST = " VOL(&XVOL) - " END ISREDIT LINE_AFTER .ZLAST = " FSEQN(&XSEQ.) ) - " ISREDIT LINE_AFTER .ZLAST = " CATALOG(&CAT) " XVOLS: - END ISREDIT CHANGE ALL .RCAT .ZLAST 1 72 ' ' '›' ISREDIT CHANGE ALL .RCAT .ZLAST "››," "," ISREDIT CHANGE ALL .RCAT .ZLAST "›" " " ISREDIT CHANGE ALL .RCAT .ZLAST 'FSEQN(0)' 'FSEQN(1)' ISREDIT RESET .RCAT .ZLAST