7. DEFINING PARAMETERS › 7.2 Complex Level Parameters › 7.2.4 Code the VAX/VMS Disk Account Code Exit (DEXACRTD)
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.. |
+--------------------------------------------------------------------------+