Previous Topic: 10.5.2 Modify VCAGENINNext Topic: 10.5.4 Establish VCAACRT for User Data Elements


10.5.3 Modify #VCAEXIT - Define _USRUSEG Macro


The _USRUSEG macro is defined as a stub in member #VCAEXIT in
sharedprefix.MICS.SOURCE.  To properly override this stub
macro with your definition of the user segment, you need to
create a local modification (for auditing purposes) which
updates member #VCAEXIT in prefix.MICS.USER.SOURCE adding
code after the %INCLUDE statement.  Update #VCAEXIT by
defining the SAS code for _USRUSEG macro to read several user
fields from the segment created by VCCUEXIT:

    MACRO _USRUSEG
    INPUT  DAAUCJOB $CHAR8.
           DAAUUJOB $CHAR8.
           UPDTYEAR PIB1.
           UPDTDAY  PIB2.
           @;
    IF (0 < UPDTYEAR < 100) & (0 < UPDTDAY < 367) THEN
      DAALUPDT = DATEJUL(1000 * UPDTYEAR + UPDTDAY);

    %                   /* END OF OLD-STYLE MACRO */

You will also need to make sure that the WRKUSR01 element
will be kept on the intermediate files WORK3.VCADAA00 and
WORK.EXTDAA00.

A local modification that would work for this example could
be stored as member LM0001 in sharedprefix.MICS.
LOCALMOD.CNTL. In the example that follows, the first step
saves a copy of the module prior to the application of
LM0001. With this convention, the suffix of the local
modification can point back to the module (or element)
affected by the change.

//SM0001   EXEC PGM=IEBUPDTE
//I1       DD  DSN=sharedprefix.MICS.SOURCE,DISP=OLD
//O1       DD  DSN=sharedprefix.MICS.LOCALMOD.CNTL,DISP=OLD
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  *
  C I=((I1,R)),O=O1
  S M=((DYVCAFMT,SM0001))       CREATE SAVED MODULE
//LM0001   EXEC PGM=IEBUPDTE
//SYSUT1   DD  DSN=sharedprefix.MICS.SOURCE,DISP=OLD
//SYSUT2   DD  DSN=sharedprefix.MICS.SOURCE,DISP=OLD
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  DATA,DLM='++'
./ CHANGE NAME=DYVCAFMT
 /* LM0001 |    | ADD WRKUSR01 TO KEEP LISTS FOR PASSING RACF DATA   */ 00010100
          WRKUSR01                  /* FOR PHASE 6 DATA STEP USAGE   */ 00050510
          WRKUSR01                  /* FOR PHASE 6 DATA STEP USAGE   */ 00054510
++
//