Previous Topic: 7.2.3 Code the VAX/VMS Account Code Exit (DEXACRT)

Next Topic: 7.3 Unit Level Parameters

7.2.4 Code the VAX/VMS Disk Account Code Exit (DEXACRTD)


The disk account code derivation routine is a user-written
routine located in sharedprefix.MICS.PARMS(DEXACRTD).  It is
invoked for each disk usage accounting record processed.
This routine builds the account code data elements for the
VMS System Usage Information Area files listed in section
7.2.2.  For example, if the DEXACCT member in the
sharedprefix.MICS.PARMS library defines four account code
levels, this user routine has the responsibility of building
the data value of those four fields for each observation
processed.

The account code routine is written in the SAS language.  The
testing and accuracy of the process is the user's
responsibility; however, the CA MICS VAX/VMS Analyzer
provides a sample account code exit routine to help verify
the accuracy of the user modifications to the routine.  The
worksheet for structuring the VAX/VMS account code derivation
routine is shown in Figure 7-2a.

The objective of the disk account code derivation process is
to build the data elements DEXACT1 to DEXACT9 (as many as
have been defined in DEXACCT) from the account detail data.

To limit retention of a DEXACTn element at a particular
time-span, the sharedprefix.MICS.PARMS(DEXACCT) member must
define that account code with the TIMESPAN mask, T(xxxxx).
This is described in the CA MICS PIOM Guide, Section 2.3.1.7.


A sample DEXACRTD member is illustrated below:


 /* DEXACRTD - DEX DISK USAGE ACCOUNT CODE EXIT ROUTINE

    THIS ROUTINE IS A USER CODED ROUTINE TO BUILD
    THE ACCOUNT FIELDS DEFINED BY THE 'DEXACCT'
    MEMBER IN MICS.PARMS. THIS ROUTINE MUST CORRECTLY
    BUILD EACH OF THE DEFINED 'DEXACT'  CODES FROM
    1 TO N, FOR THE DESDKU FILE.

    THIS ROUTINE MUST BE CODED ACCORDING TO THE
    FOLLOWING RULES:

       1.  PRIMARY DATA ELEMENTS AVAILABLE FOR
           THIS ROUTINE INCLUDE:

           DEXGRP   - UIC GROUP CODE
           DEXMBR   - UIC MEMBER CODE
           DEXNODE  - NODE NAME WHERE MEASUREMENT WAS TAKEN
           DEXDEVIC - DISK DEVICE NAME
           DKUDIRTL - DIRECTORY TOP LEVEL
           DKUDIR   - DIRECTORY NAME
           DKUFILE  - FILE NAME

        THESE ELEMENTS ARE AVAILABLE FROM THE DEXSUSA MODULE
        PROCESSING FOR THE DESDKU FILE.
   ******************************************************* */

 SELECT(DEXAFILE);
 WHEN ('DESDKU') DO;

 /* ****************************************************** */
 /* SAMPLE DISK ACCOUNT CODE DERIVATION EXIT               */
 /* ****************************************************** */

 IF DEXNODE  NE ' ' THEN DO;
   DEXACT1 = SUBSTR(DEXNODE,1,3);
   DEXACT2 = PUT(DEXGRP,6.);
   DEXACT3 = DKUDIRTL;
 END;
 ELSE DO;
   /* DEFAULT ACCOUNT CODES*/
   DEXACT1 = 'OVH';
   DEXACT2 = '***';
   DEXACT3 = '***';
 END;

 /* ****************************************************** */
 /* END OF ROUTINE                                         */
 /* ****************************************************** */

 END; /* END OF WHEN */
 OTHERWISE;
 END; /* END OF SELECT */





+--------------------------------------------------------------------------+
| INSTALLATION PREPARATION WORKSHEET: VAX/VMS Disk Account Code Routine    |
|                                                                          |
| PARMS Library Member is DEXACRTD                                         |
| Reference Sections: 7.2.4                                                |
+--------------------------------------------------------------------------+
|                                                                          |
| * VALIDATE FOR VALID ACCOUNT CODES, WHERE POSSIBLE ;                     |
|                                                                          |
| IF { account data is valid } THEN DO;                                    |
|                                                                          |
| * BUILD ACCOUNT CODE FIELDS AS IN THE WORKSHEET 7-1                      |
|                                                                          |
|     DEXACT1=field source 1 ;                                             |
|     ...                                                                  |
|     ...                                                                  |
|     ...                                                                  |
|     DEXACTn=field source n ;                                             |
|     ____________________________________________________________________ |
|     ____________________________________________________________________ |
|     ____________________________________________________________________ |
|     ____________________________________________________________________ |
|     ____________________________________________________________________ |
|                                                                          |
| END;                                                                     |
| ELSE DO;                                                                 |
|                                                                          |
| * ROUTINE TO BUILD INSTALLATION OVERHEAD ACCOUNT CODES ;                 |
|                                                                          |
|     DEXACT1='overhead category' ;                                        |
|     ...                                                                  |
|     ...                                                                  |
|     ...                                                                  |
|     DEXACTn='overhead category' ;                                        |
|     ____________________________________________________________________ |
|     ____________________________________________________________________ |
|     ____________________________________________________________________ |
|     ____________________________________________________________________ |
|                                                                          |
| END;                                                                     |
|                                                                          |
+--------------------------------------------------------------------------+
| ....5...10...15...20...25...30...35...40...45...50...55...60...65...70.. |
+--------------------------------------------------------------------------+