/* REXX EDIT MACRO TO DISPLAY JOBLIBS WHICH CONTAIN LOAD MODULE*/ /* FOR PROGRAM */ "ISREDIT MACRO (MBR)" CALL INIT CALL FINDLIBS DO COUNT = 1 BY 1 UNTIL COUNT = CTR CALL FINDLOAD END IF FOUND = "N" THEN CALL NOTFOUND EXIT INIT: /*********************************************************************/ /* SET SWITCHES, TURN MESSAGES OFF, CHECK FOR VALUE IN MSG */ /*********************************************************************/ Z=MSG(OFF) IF MBR = "" THEN DO SAY "ENTER YOUR PROGRAM NAME AND PRESS ENTER" PULL MBR END MBR = TRANSLATE(MBR) FOUND = "N" FIRST = "Y" RETURN FINDLIBS: /*********************************************************************/ /* FIND ALL JOBLIBS LISTED IN JCL */ /*********************************************************************/ CTR = 0 "ISREDIT FIND '//JOBLIB ' FIRST" IF RC ^= 0 THEN DO SAY "" SAY "NO JOBLIBS WERE FOUND IN YOUR JCL" EXIT END ELSE DO CTR = CTR + 1 "ISREDIT (LIB) = LINE .ZCSR" STARTPOS = POS("//JOBLIB",LIB) LIB = SUBSTR(LIB,STARTPOS) LIB = TRANSLATE(LIB," ",",=") JOBLIB.CTR = WORD(LIB,4) MORE = "Y" DO UNTIL MORE = "N" CALL USERLIBS END RETURN USERLIBS: /*********************************************************************/ /* EXTRACT REMAINING JOBLIBS */ /*********************************************************************/ "ISREDIT (LNBR,CNBR) = CURSOR" "ISREDIT CURSOR = "LNBR + 1" "CNBR" "ISREDIT (LIB) = LINE .ZCSR" LIB = SUBSTR(LIB,STARTPOS) IF SUBSTR(LIB,1,3) = "//*" THEN NOP ELSE IF SUBSTR(LIB,1,3) = "// " THEN CALL GETLIB ELSE MORE = "N" RETURN GETLIB: /*********************************************************************/ /* EXTRACT JOBLIB NAME */ /*********************************************************************/ LIB = TRANSLATE(LIB," ",",=") CTR = CTR + 1 JOBLIB.CTR = WORD(LIB,4) RETURN FINDLOAD: /*********************************************************************/ /* LOOP TO FIND LOAD IN JOBLIBS */ /*********************************************************************/ X = SYSDSN("'"JOBLIB.COUNT"("MBR")'") IF X = "MEMBER NOT FOUND" THEN NOP ELSE IF X = "OK" THEN DO IF FIRST = "Y" THEN SAY "LOAD MODULES FOR" MBR "FOUND IN THE FOLLOWING LIBRARIES:" FIRST = "N" SAY "" SAY JOBLIB.COUNT FOUND = "Y" END ELSE CALL LIBERROR RETURN LIBERROR: /*********************************************************************/ /* ISSUE WARNING IF JOBLIB NOT FOUND, EXIT ON OTHER JOBLIB ERRORS */ /*********************************************************************/ IF X = "DATASET NOT FOUND" THEN DO SAY "" SAY "******* WARNING!" JOBLIB.COUNT "NOT FOUND ********" END ELSE DO ZEDSMSG = "JOBLIB ERROR" ZEDLMSG = JOBLIB.COUNT "ERROR" "ISPEXEC SETMSG MSG(ISRZ001)" EXIT END RETURN NOTFOUND: /*********************************************************************/ /* ISSUE WARNING IF LOAD MODULE NOT FOUND IN ANY JOBLIB */ /*********************************************************************/ SAY "LOAD MODULE FOR" MBR "NOT FOUND IN ANY OF LISTED JOBLIBS" RETURN