ISREDIT MACRO
 
/********************************************************************/
/* THIS EDIT MACRO (CATM1001) GENERATES THE WHOOWNS REPORTS AND     */
/* CREATES THE WHOOXXXX MEMBER DEPENDING ON THE VALUES IN VARIABLE  */
/* RESOURCE.                                                        */
/********************************************************************/
 
/* 10/03/2011 CL FENTON ADDED ERROR CHECKING.
 
SET PGMNAME = &STR(CATM1001 10/03/11)
 
SET RETURN_CODE = 0                   /* SET RETURN CODE TO 0  */
 
ISPEXEC CONTROL NONDISPL ENTER
ISPEXEC CONTROL ERRORS RETURN
 
ERROR DO
  SET RETURN_CODE = &LASTCC          /* SAVE LAST ERROR CODE */
  IF &LASTCC GE 16 THEN +
    WRITE &PGMNAME LASTCC = &LASTCC &ZERRLM
  RETURN
  END
 
/* ***************************************    */
/* VARIABLES ARE PASSED TO THIS MACRO         */
/* RESOURCE                                   */
/* OUTPUT                                     */
/* CONSLIST                                   */
/* COMLIST                                    */
/* SYMLIST                                    */
/* TERMPRO                                    */
/* TERMMSGS                                   */
/* ***************************************    */
 
ISPEXEC  VGET ( -
  RESOURCE      -
  OUTPUT        -
  CONSLIST      -
  COMLIST       -
  SYMLIST       -
  TERMPRO       -
  ACP           -
  ACPVER        -
  EXAMVER       -
  TERMMSGS      -
  ) ASIS
 
IF &RETURN_CODE NE 0 THEN +
  SET T1VGERR = &RETURN_CODE
 
MESSAGE_HOUSEKEEPING: -
SET SYSSYMLIST = &SYMLIST          /* CONTROL SYMLIST/NOSYMLIST */
SET SYSCONLIST = &CONSLIST         /* CONTROL CONLIST/NOCONLIST */
SET SYSLIST    = &COMLIST          /* CONTROL LIST/NOLIST       */
SET SYSMSG     = &TERMMSGS         /* CONTROL MSG/NOMSG         */
 
/***************************************************************** */
/*  SET DIFFERENT ATTRIBUTES WITHIN CURRENTLY OPENED MEMBER        */
/***************************************************************** */
 
ISREDIT STATS = OFF
ISREDIT NUMBER OFF
 
/***************************************************************** */
/*  SET AUTOSAVE FOR WHOOWNS VARIABLE IN RESOURCE.                 */
/***************************************************************** */
 
IF &SUBSTR(13:13,&STR(&RESOURCE)) EQ Y THEN +
  ISREDIT AUTOSAVE ON
ELSE +
  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
WRITE &PGMNAME Processing &VAR..
 
SET TSSRC = 0
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(*)
 
SET TSSRC = &RETURN_CODE
 
SET &SYSLIST = &COMLIST
 
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
/* WRITE RC=&TSSRC &DATA
 
ISREDIT LINE_AFTER .ZLAST = "READY"
 
ISREDIT LINE_AFTER .ZLAST = "END"
 
SET RETURN_CODE = 0
 
ISREDIT FIND 'TSS0301I' ALL
 
IF &RETURN_CODE EQ 0 AND &TSSRC EQ 0 THEN +
  SET TSSRC = 4
 
/***************************************************************** */
/*  DEPENDING ON RESULTS OF TSS COMMAND AND THE VALUE IN RESOURCE  */
/*  IS USED TO GENERATE THE WHOHAS MEMBER.                         */
/***************************************************************** */
 
IF &SUBSTR(14:14,&STR(&RESOURCE)) EQ Y AND +
  &TSSRC 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(&OUTPUT) MACRO(CATM1002) MEMBER(&MEMBER)
 
      SET CNT = &CNT + 1
 
      IF &CNT GT 10 THEN DO
          SET &CNT = 0
          SET RETURN_CODE = 0
          ISPEXEC LMCOMP DATAID(&OUTPUT)
        END
      END
  END
 
/***************************************************************** */
/*  ADDS FINISHING TOUCHES TO THE WHOHAS MEMBER.                   */
/***************************************************************** */
 
  ISPEXEC EDIT DATAID(&OUTPUT) MACRO(CATM1003) MEMBER(&MEMBER)
 
  END
 
ISPEXEC  VPUT  ( -
  T1VGERR -
  T1CONSER -
  T1COMER -
  T1TERPER -
  T1TERMER -
  ) ASIS
 
ISREDIT END
 
SET LASTCC = 0
 
EXIT
END
 
