ISREDIT MACRO /********************************************************************/ /* THIS EDIT MACRO (CATM0005) GENERATES THE WHOOWNS REPORTS AND */ /* CREATES THE WHOOXXXX MEMBER DEPENDING ON THE VALUES IN VARIABLE */ /* RESOURCE. */ /********************************************************************/ SET RETURN_CODE = 0 /* SET RETURN CODE TO 0 */ ISPEXEC CONTROL NONDISPL ENTER ISPEXEC CONTROL ERRORS RETURN ERROR + DO SET RETURN_CODE = &LASTCC RETURN END /* *************************************** */ /* VARIABLES ARE PASSED TO THIS MACRO */ /* RESOURCE */ /* OUTPUT */ /* CONSLIST */ /* COMLIST */ /* SYMLIST */ /* TERMPRO */ /* TERMMSGS */ /* *************************************** */ ISPEXEC VGET ( - RESOURCE - OUTPUT - TEMP - CONSLIST - COMLIST - SYMLIST - TERMPRO - ACP - ACPVER - EXAMVER - TERMMSGS - ) ASIS IF &RETURN_CODE NE 0 THEN + SET TM05VGE = &RETURN_CODE ELSE + SET TM05VGE = 0 MESSAGE_HOUSEKEEPING: - IF &CONSLIST = ON THEN + CONTROL CONLIST /* TURN ON CONLIST */ IF &COMLIST = ON THEN + CONTROL LIST /* TURN ON LIST */ IF &SYMLIST = ON THEN + CONTROL SYMLIST /* TURN ON SYMLIST */ IF &TERMPRO = ON THEN + CONTROL PROMPT /* TURN PROMPT ON */ IF &TERMMSGS = ON THEN + CONTROL MSG /* TURN ON MESSAGES */ /***************************************************************** */ /* SET DIFFERENT ATTRIBUTES WITHIN CURRENTLY OPENED MEMBER */ /***************************************************************** */ ISREDIT STATS = OFF ISREDIT NUMBER OFF /***************************************************************** */ /* CLEAR MEMBER */ /***************************************************************** */ ISREDIT DELETE .ZF .ZL /***************************************************************** */ /* SET AUTOSAVE FOR WHOOWNS VARIABLE IN RESOURCE. */ /***************************************************************** */ ISREDIT AUTOSAVE OFF NOPROMPT /***************************************************************** */ /* SET VARIABLES AND CONTROL VARIABLES FOR THIS PROCESS. */ /***************************************************************** */ SET L = &STR(( SET LINE = 1 SET &SYSOUTTRAP = 999999999 SET VAR = &SUBSTR(1:8,&STR(&RESOURCE)) /* SET RESOURCE CLASS */ SET VAR = &VAR SET RETURN_CODE = 0 /***************************************************************** */ /* ISSUE TSS COMMAND TO OBTAIN OWNERSHIP OF THE RESOURCE */ /* VALUES. */ /***************************************************************** */ ISREDIT LINE_AFTER .ZLAST = "READY" SET &SYSLIST = ON TSS WHOO &VAR(*) IF &RETURN_CODE GT 0 THEN - DO SET TM05RC = &RETURN_CODE END ELSE - DO SET TM05RC = 0 END SET &SYSLIST = OFF SET A = &SYSOUTLINE /* OBTAIN LAST LINE FROM CMD RESULTS */ DO X = 1 TO &A SET DATA = &&SYSOUTLINE&X SET DATA = &STR(&DATA) ISREDIT LINE_AFTER .ZLAST = (DATA) END ISREDIT LINE_AFTER .ZLAST = "READY" ISREDIT LINE_AFTER .ZLAST = "END" SET RETURN_CODE = 0 ISREDIT FIND 'TSS0301I' ALL IF &RETURN_CODE EQ 0 AND &TM05RC EQ 0 THEN + SET TM05RC = 4 /***************************************************************** */ /* DEPENDING ON RESULTS OF TSS COMMAND AND THE VALUE IN RESOURCE */ /* IS USED TO GENERATE THE WHOHAS MEMBER. */ /***************************************************************** */ SET SWITCH = Y ISPEXEC VPUT (SWITCH) IF &SUBSTR(14:14,&STR(&RESOURCE)) EQ Y AND + &TM05RC EQ 0 THEN + DO DO INDEX = 3 TO &A ISREDIT (LINE) = LINE &INDEX IF &SUBSTR(10:13,&NRSTR(&LINE)) EQ OWNS THEN + DO SET VALUE = &SUBSTR(24:80,&NRSTR(&LINE)) DO UNTIL &SUBSTR(&LENGTH(&NRSTR(&VALUE)),&NRSTR(&VALUE)) + NE &STR( ) SET VALUE = &SUBSTR(1:&LENGTH(&NRSTR(&VALUE))-1,+ &NRSTR(&VALUE)) END IF &NRSTR(&VALUE) EQ &STR(*(G)) THEN + SET VALUE = &STR(*ALL*) IF &SYSINDEX(&STR(&L),&NRSTR(&VALUE)) GT 0 THEN + SET VALUE = &SUBSTR(1:&SYSINDEX(&STR(&L),&NRSTR(&VALUE))-1,+ &NRSTR(&VALUE) ISPEXEC VPUT (VALUE) SET MEMBER = WHOH&SUBSTR(9:12,&STR(&RESOURCE)) ISPEXEC EDIT DATAID(&TEMP) MACRO(CATM0006) MEMBER(&MEMBER) SET RETURN_CODE = 0 ISPEXEC LMCOMP DATAID(&OUTPUT) SET RETURN_CODE = 0 ISPEXEC LMCOMP DATAID(&TEMP) SET RETURN_CODE = 0 END END /***************************************************************** */ /* ADDS FINISHING TOUCHES TO THE WHOHAS MEMBER. */ /***************************************************************** */ IF &VAR EQ TSOPROC THEN - ISPEXEC EDIT DATAID(&TEMP) MACRO(CATM0008) MEMBER(&MEMBER) ELSE - ISPEXEC EDIT DATAID(&TEMP) MACRO(CATM0007) MEMBER(&MEMBER) END ISPEXEC VPUT ( - TM05VGE - TM05RC - ) ASIS ISREDIT END SET LASTCC = 0 EXIT END