

10. MODIFICATION › 10.5 A Case Study Using RACF and DMS/OS Data › 10.5.4 Establish VCAACRT for User Data Elements
10.5.4 Establish VCAACRT for User Data Elements
The _USRUSEG macro is called during Phase 1 of the DAY090 job
step as the routine builds WORK3.VCADAA00 and WORK.EXTDAA00
from the raw VCC records. The modification to VCAGENIN
described in Section 10.5.2 caused CA MICS to add the user
data elements to the generated macros:
o DAALEN
o DAAKEEP
o DAAFMT
Therefore, now that the user data has had its length and
format defined, has been extracted by means of the INPUT
statements in the _USRUSEG macro, and has been kept as a
variable on the WORK3.VCADAA00 file, you must now finalize
what you want to do with the accounting information obtained
from the RACF installation data.
In the example below, the VCA Account Code variables are
populated with data from RACF:
IF FILEID = 'VCADAA' THEN DO;
VCAACT3 = 'ZFROMRACF';
VCAACT2 = WRKUSR01; /* ACCOUNT CODE FROM RACF */
IF VCAACT2 = '********' OR
VCAACT2 = '*RACFERR' THEN DO;
VCAACT3 = 'W' || DAAUCJOB;
VCAACT2 = PUT(DAAUCJOB,$USRJOB.);
IF VCAACT2 = '********' THEN DO;
/* SEE IF CREATED VIA TSO */
VCAACT2 = PUT(DAAUCJOB,$USRUSER.);
IF VCAACT2 = '********' THEN DO;
VCAACT3 = 'W*NOMATCH';
END;
END;
END;
VCAACT1 = PUT(VCAACT2,$USRBILL.);
END;
The following notes may help to explain the above logic.
Please bear in mind that this is only one possible
implementation. Like all user exits, you are responsible
for developing and testing.
o There are 3 levels of account codes:
o VCAACT3 represents a USERID or an individual
o VCAACT2 represents the department to which the
USERID is assigned
o VCAACT1 represents the division to which the
department is assigned.
o VCAACT3 is set to an arbitrary string (ZFROMRACF)
to indicate that the department (account code) will
be assigned from RACF data.
o VCAACT2 is assigned from DAAARACF. This is the account
code read earlier from the _USRUSEG macro.
o If the RACF administrator had not supplied the department
account code as the installation data (INSTDATA) when
setting up the GROUP PROFILE, then the previously
discussed exits result in the VCAACT2 value being set to
'********' or '*RACFERR'.
o If that is the case, then:
o VCAACT3 is set to the value of the creating JOBNAME
prefixed by an arbitrary character of 'W'.
o A PROC FORMAT table called $USRJOB is searched for a
match on the creating JOBNAME. Obviously, this
presumes you validate JOBNAMEs and maintain this
table to handle these RACF exceptions. The search
returns the departmental account code or an
arbitrary string of all '********'.
o If not found in the $USRJOB table, a search of
another table, $USRUSER, is done presuming the
creating JOBNAME is a TSO USERID. If found, then
the VCAACT2 variable is set to the departmental
account code for that user. Note that this implies
you have a job that can be run periodically or as
new users are assigned which builds the PROC FORMAT
which relates USERIDs to departments.
If a USERID cannot be found, then we leave VCAACT2
set to all '*' and set VCAACT3 to an arbitrary
string of 'W*NOMATCH'.
o Finally, VCAACT1 (the division) is determined by
using the department account number (VCAACT2) as a
search argument into a table (PROC FORMAT) called
$USRBILL.
Copyright © 2014 CA.
All rights reserved.
 
|
|