Previous Topic: 7.2.2 VAX Account Code Structure (DEXACCT)

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

7.2.3 Code the VAX/VMS Account Code Exit (DEXACRT)


The account code derivation routine is a user-written routine
located in sharedprefix.MICS.PARMS(DEXACRT).  It is invoked
for each account record processed.  This routine builds the
account code data elements for the VAX/VMS Accounting
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-2.

The objective of the 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 DEXACRT member is illustrated below:


 /* DEXACRT - DEX 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.

    THIS ROUTINE MUST BE CODED ACCORDING TO THE
    FOLLOWING RULES:

        1.  PRIMARY DATA ELEMENTS AVAILABLE FOR
            THIS ROUTINE INCLUDE:

     DEXPID   - EXT. PROCESS ID   DEXTERM  -  TERMINAL
     DEXOWNID - OWNER ID          DEXJOB   -  JOBNAME
     DEXGRP   - UIC GROUP CODE    DEXJOBID -  JOB ID
     DEXMBR   - UIC MEMBER CODE   DEXQUEUE -  QUEUE
     DEXPRIV1 - PRIVILEGE 1       TYPE     -  RECORD TYPE
     DEXPRIV2 - PRIVILEGE 2       PRXTYPE  -  PRCTYPE,IMGTYPE
     DEXUSER  - USERNAME
     DEXACCNT - ACCOUNT
     DEXNODE  - NODE NAME OF REMOTE PROCESS

      THESE ELEMENTS ARE AVAILABLE FROM THE IDENTIFICATION
      PACKET OF EACH ACCOUNTING RECORD TYPE.
   ******************************************************* */

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

 IF DEXACCNT NE ' ' THEN DO;
   DEXACT1 = SUBSTR(DEXACCNT,1,3);
   DEXACT2 = PUT(DEXGRP,6.);
   DEXACT3 = DEXUSER;
 END;
 ELSE DO;
  /* DEFAULT ACCOUNT CODES*/
   DEXACT1 = 'OVHD';
   DEXACT2 = '***';
   DEXACT3 = '***';
 END;
  /* END OF ROUTINE     */





+--------------------------------------------------------------------------+
| INSTALLATION PREPARATION WORKSHEET: VAX/VMS Account Code Routine Defined |
|                                                                          |
| PARMS Library Member is DEXACRT                                          |
| Reference Sections: 7.2.3                                                |
+--------------------------------------------------------------------------+
|                                                                          |
| * 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.. |
+--------------------------------------------------------------------------+