Previous Topic: 10.5.4 Establish VCAACRT for User Data ElementsNext Topic: 10.6 Change the Number of Work Files for DAY090


10.5.5 Adapting Techniques for HSM Exits


Sections in this chapter have discussed how RACF data can
be obtained and integrated by a series of exits in the
CA MICS DASD products:

    o    VCCUEXIT to capture RACF (and DMS/OS) data
    o    VCAGENIN modifications to define user fields
    o    _USRUSEG to read the user data
    o    VCAACRT to translate user data into VCAACTx
         variables

Section 7.2 emphasizes the importance of synchronizing the
setting of account code data between VCA and HSM. With the
above techniques pertaining to VCA only, how can similar
techniques be used for DFHSM data managed here by the HSM
component of the product?

1. VCCUEXIT techniques can be cloned into a batch program
   which runs as a post-processing step to VCC. This program
   would simply:
    a. OPEN the VCCHSM data file created by VCC
    b. READ each record until EOF
    c. For all type 'M' and type 'B' records, the RACF
       extraction logic shown in the VCCUEXIT could be used
       virtually without modification.
    d. The account code would be placed in the HSM user
       segment and the main common segment of the record
       updated with the offset to the user segment.
    e. At end-of-file, the data file is CLOSED.

2. VCAGENIN modification techniques could be similarly
   applied to HSMGENIN, but there is an alternative for HSM
   making this part easier. In
   shareprefix.MICS.USER.SOURCE(#HSMEXIT):

      %LET USRKEEP =;

   can be modified to the element or group of elements to be
   added to the KEEP lists generated for the HSMMIG file and
   the HSBBAC file. For example:

      %LET USRKEEP = DEPTNO;

3. The USRHSEG macro plays the same role as the _USRUSEG
   macro plays for VCA data. See Section 10.3 for details
   on USRHSEG.

4. Finally, the HSMACRT routine is used to for the same
   purpose as for VCA when called for the HSMMIG file and the
   HSBBAC file. An example based on the example shown in
   Section 10.5.4 is shown here:

 IF FILEID =: 'HS' THEN DO;
   HSMACT3 = 'ZFROMRACF';
   HSMACT2 = DEPTNO;           /* ACCOUNT CODE FROM RACF */
   END;
   HSMACT1 = PUT(HSMACT2,$USRBILL.);
 END;

  The only substantial difference between this and the
  example for VCA shown in Section 10.5.4 is the exception
  logic invoked if RACF administration had not established
  a department account number in the INSTDATA field of the
  RACF profile.