ISREDIT MACRO       /* CARM0061 EDIT MACRO */
 
SET RETURN_CODE = 0   /* SET RETURN CODE TO 0 */
 
/* 04/13/2018 CL.FENTON Corrected issue with a single ampersand
/*            when setting the UZID field, STS-019759.
 
 
/* *************************************** */
/* VARIABLES ARE PASSED TO THIS MACRO      */
/* CONSLIST                                */
/* COMLIST                                 */
/* TERMPRO                                 */
/* TERMMSGS                                */
/* *************************************** */
 
                    /* GET VARIABLES FROM POOL */
 
ISPEXEC  VGET (                                                       -
  TABLE1                                                              -
  SENSITVE                                                            -
  APREFIX                                                             -
  ALPHA                                                               -
  XTITLE                                                              -
  CONSLIST                                                            -
  COMLIST                                                             -
  SYMLIST                                                             -
  TERMMSGS                                                            -
  ) ASIS
 
SET RETURN_CODE = &LASTCC
 
IF &RETURN_CODE NE 0 THEN                                             -
  SET CBVGERR = &RETURN_CODE
ELSE                                                                  -
  SET CBVGERR = 0
 
/* *************************************** */
/* TURN ON MESSAGES                        */
/* *************************************** */
 
CHAPRM6_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         */
 
 
CHAPRM6_HOUSEKEEPING:                                                 -
                                                                      -
ISREDIT (MEMBER) = MEMBER
 
SET OMEMBER = &MEMBER
 
SET BLANK = &STR( )
 
SET LAST_LOOP = NO
 
SET LOOP_CNT = 0
 
 
/* *************************************** */
/* PUT HEADINGS OUT                        */
/* *************************************** */
 
  SET HEADLINE = &NRSTR(              &MEMBER                   )
  SET AC = &STR(&HEADLINE)
  ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)             -
      DATALEN(&LENGTH(&STR(&AC))) MEMBER(&OMEMBER)
  SET HEADLINE = &STR( =======================================)
  SET HEADLINE = &STR(&HEADLINE===============================)
  SET HEADLINE = &STR(&HEADLINE===============================)
  SET HEADLINE = &STR(&HEADLINE===============================)
  SET AC = &STR(&HEADLINE)
  ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)             -
      DATALEN(&LENGTH(&STR(&AC))) MEMBER(&OMEMBER)
  SET AC = &STR( )
  ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)             -
      DATALEN(&LENGTH(&STR(&AC))) MEMBER(&OMEMBER)
 
ISREDIT (ENDER) = LINENUM .ZLAST
 
ISREDIT CURSOR = 1 1
 
ISREDIT (CURLINE) = LINENUM .ZCSR
 
/* *************************************** */
/* MAIN LOOP                               */
/* *************************************** */
 
LOOP:                                                                 -
                                                                      -
IF &LAST_LOOP = YES THEN GOTO END_EDIT
 
IF &CURLINE = &ENDER THEN SET &LAST_LOOP = YES
 
ISREDIT (DATA) = LINE &CURLINE
 
/* *************************************** */
/* CHECK 1 POSITION                        */
/* *************************************** */
 
SET DATA_INDICATE = &SUBSTR(1:1,&NRSTR(&DATA))
 
IF &DATA_INDICATE = &STR(L) THEN GOTO LINED
 
IF &DATA_INDICATE = &STR(D) THEN GOTO STRIPD
 
IF &DATA_INDICATE = &STR( ) THEN GOTO STRIPU
 
/*IF &DATA_INDICATE = &STR( ) THEN                                    -
/*  DO
/*  SET AC = &NRSTR(&DATA)
/*  ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)           -
/*  DATALEN(&LENGTH(&NRSTR(&AC))) MEMBER(&OMEMBER)
/*  SET CURLINE = &CURLINE + 1
  GOTO LOOP
/*  END
 
 
/* *************************************** */
/* STRIP DATA                              */
/* *************************************** */
 
STRIPD:                                                               -
                                                                      -
SET LOOP_CNT = &LOOP_CNT + 1
 
IF &LOOP_CNT = 1 THEN                                                 -
DO
  SET DSNAME = &SUBSTR(11:61,&DATA)
  SET UZID = &SUBSTR(62:70,&DATA)
  SET GROUP = &SUBSTR(81:81,&DATA)
  SET ACC1 = &SUBSTR(71:79,&DATA)
  SET WARN1 = &SUBSTR(84:84,&DATA)
  SET UACC1 = &SUBSTR(87:94,&DATA)
  SET AUDIT1 = &SUBSTR(96:133,&DATA)
  SET AC = &STR(&DSNAME                                            )
  SET AC = &STR(&AC                                                )
  SET AC = &SUBSTR(1:67,&AC)
  IF &WARN1 = N THEN                                                  -
  DO
  SET AC = &STR(     &AC UACC(&UACC1) WARN(N) &AUDIT1)
  ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)             -
  DATALEN(&LENGTH(&STR(&AC))) MEMBER(&OMEMBER)
  END
  IF &WARN1 = Y THEN                                                  -
  DO
  SET AC = &STR(     &AC UACC(&UACC1) WARN(Y) &AUDIT1)
  ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)             -
  DATALEN(&LENGTH(&STR(&AC))) MEMBER(&OMEMBER)
  END
  IF &GROUP EQ G THEN SET UZID1 = &STR(GROUPID(&UZID))
  ELSE +
    IF &GROUP EQ U THEN SET UZID1 = &STR( USERID(&UZID))
    ELSE SET UZID1 = &STR(  UNK(&UZID))
  SET AC = &STR(          &UZID1 ACCESS(&ACC1) )
/*SET AC = &SUBSTR(1:15,&AC)
/*SET AC = &STR(&AC  &ACC1                                          )
/*SET AC = &SUBSTR(1:24,&AC)
/*SET AC = &STR(          &AC &GROUP)
  IF &STR(&UZID) NE &STR( ) THEN +
    ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)          -
    DATALEN(&LENGTH(&STR(&AC))) MEMBER(&OMEMBER)
END
 
IF &LOOP_CNT NE 1 THEN                                               -
DO
  SET DSNAME = &SUBSTR(11:62,&DATA)
  SET UZID = &SUBSTR(62:70,&DATA)
  SET GROUP = &SUBSTR(81:81,&DATA)
  SET ACC1 = &SUBSTR(71:79,&DATA)
  SET WARN1 = &SUBSTR(84:84,&DATA)
  SET UACC1 = &SUBSTR(87:94,&DATA)
  SET AUDIT1 = &SUBSTR(96:133,&DATA)
/*SET AC = &STR(          &UZID  &ACC1 &GROUP )
  IF &GROUP EQ G THEN SET UZID1 = &STR(GROUPID(&UZID))
  ELSE +
    IF &GROUP EQ U THEN SET UZID1 = &STR( USERID(&UZID))
    ELSE SET UZID1 = &STR(  UNK(&UZID))
  SET AC = &STR(          &UZID1 ACCESS(&ACC1) )
/*SET AC = &SUBSTR(1:15,&AC)
/*SET AC = &STR(&AC  &ACC1                                          )
/*SET AC = &SUBSTR(1:24,&AC)
/*SET AC = &STR(          &AC &GROUP)
  IF &STR(&UZID) NE &STR( ) THEN +
    ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)          -
    DATALEN(&LENGTH(&STR(&AC))) MEMBER(&OMEMBER)
END
 
 
SET CURLINE = &CURLINE + 1
 
GOTO LOOP
 
STRIPU:                                                               -
                                                                      -
SET &UZID = &SUBSTR(40:79,&NRSTR(&DATA))
 
SET &AC = &STR(               &NRSTR(&UZID))
ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)               -
  DATALEN(&LENGTH(&NRSTR(&AC))) MEMBER(&OMEMBER)
 
SET CURLINE = &CURLINE + 1
 
GOTO LOOP
 
LINED:                                                                -
                                                                      -
SET LINE1 = &STR(&SUBSTR(2:133,&DATA))
 
SET AC = &STR( )
 
ISPEXEC LMPUT DATAID(&SENSITVE) MODE(INVAR) DATALOC(AC)               -
  DATALEN(&LENGTH(&STR(&AC))) MEMBER(&OMEMBER)
 
SET LOOP_CNT = 0
 
SET CURLINE = &CURLINE + 1
 
GOTO LOOP
 
END_EDIT:                                                             -
                                                                      -
ISPEXEC  VPUT  (                                                      -
  CBVGERR                                                             -
  CBCONSER                                                            -
  CBCOMER                                                             -
  CBTERPER                                                            -
  CBTERMER                                                            -
  ) ASIS
 
   ISPEXEC LMMREP DATAID(&SENSITVE) MEMBER(&OMEMBER)
/* *************************************** */
/* SAVE OUTPUT                             */
/* *************************************** */
 
ISREDIT END
 
EXIT
