This exit provides you with control immediately following the grouping feature logic and prior to the application of the accounting algorithm for each accounting record being processed. This lets you to test or apply a unique algorithm to any record reaching this phase of processing.
Historical data is passed to the user exit routine prior to all old account records.
The parameter list for this exit is as follows:
|
Word |
Description |
|---|---|
|
1 |
Address of Set Code for report currently being generated |
|
2 |
Address of accounting record currently being processed |
|
3 |
Address of RATE statement information table |
|
4 |
Address of PRIORITY statement information table |
|
5 |
Address of working storage area |
|
6 |
Address of disposition indicator to be set by user |
|
7 |
Address of VMRATE statement information table |
|
8 |
Address of FORMRATE statement information table. |
|
9 |
Address of RJERATE statement information table. |
All these tables are described on the following pages. For VM data, the RATE, PRIORITY, and RJERATE statement information tables contain binary zeros, since these three statement types are not used under CMS.
The RATE statement information table consists of a variable number of entries, with the last valid entry being followed by an entry containing low-values (x'00'). Each entry is basically in the same format as the RATE statement as shown on the following page.
RATE Statement:
|
Field Name |
Field Length |
Displacement |
|---|---|---|
|
CPU Identification |
1 |
0 |
|
Basic Processor Rate |
4 |
1 |
|
Basic I/O Rate |
3 |
5 |
|
Core Factor |
4 |
8 |
|
Elapsed Time Factor |
3 |
12 |
|
Total CPU Time Factor |
3 |
15 |
|
SRB CPU Time Factor |
3 |
18 |
|
TCB CPU Time Factor |
3 |
21 |
|
Reader I/O Factor |
3 |
24 |
|
Printer I/O Factor |
3 |
27 |
|
Punch I/O Factor |
3 |
30 |
|
Tape I/O Factor |
3 |
33 |
|
Disk I/O Factor |
3 |
36 |
|
Other I/O Factor |
3 |
39 |
|
Reader Rate |
3 |
42 |
|
Printer Rate* |
3 |
45 |
|
Special Print Rate* |
3 |
48 |
|
Punch Rate* |
3 |
51 |
|
Tape Allocation Charge |
3 |
54 |
|
Disk Allocation Charge |
3 |
57 |
|
Minimum Job Charge |
4 |
60 |
|
Maximum Step Rate |
4 |
64 |
|
Step Time Criteria |
2 |
68 |
|
Core Indicator |
1 |
70 |
|
* Not used for OS jobs (FORMRATE used instead) |
||
The VMRATE statement information table consists of a variable number of entries with the last entry being followed by an entry containing low-values (x'00'). Each entry is basically in the same format as the VMRATE statement as follows. All data is in EBCDIC format.
VMRATE Statement:
|
Field Name |
Field Length |
Displacement |
|---|---|---|
|
CPU Identification |
1 |
0 |
|
Basic Processor Rate |
4 |
1 |
|
Basic I/O Rate |
3 |
5 |
|
Product Factor |
4 |
8 |
|
Connect Time Rate |
4 |
12 |
|
Virtual CPU Time Factor |
3 |
16 |
|
Total CPU Time Factor |
3 |
19 |
|
Reader I/O Factor |
3 |
22 |
|
Printer I/O Factor |
3 |
25 |
|
Punch I/O Factor |
3 |
28 |
|
Tape Connect Factor |
3 |
31 |
|
Temporary Disk Factor |
3 |
34 |
|
Non-Spooled I/O Factor |
3 |
37 |
|
Filler |
12 |
40 |
|
Punch Rate |
3 |
52 |
|
Reader Rate |
3 |
55 |
|
Tape Allocation Charge |
3 |
58 |
|
Disk Allocation Charge |
3 |
61 |
|
Minimum Session Charge |
4 |
64 |
The PRIORITY statement information table consists of a variable number of entries with the last entry being followed by an entry containing low-values (x'00'). Each entry is basically in the same format as the PRIORITY statement as follows:
PRIORITY Statement:
|
Field Name |
Field Length |
Displacement |
|---|---|---|
|
CPU Identification |
1 |
0 |
|
Processor Charge Flag |
1 |
1 |
|
I/O Charge Flag |
1 |
2 |
|
U/R Charge Flag |
1 |
3 |
|
Setup Charge Flag |
1 |
4 |
|
Priority Factors |
30 |
5 |
|
Class/Partition Factors |
35 |
35 |
The FORMRATE statement information table consists of a variable number of entries with the last entry being followed by an entry containing low-values (x'00'). Each entry is in a format similar to the FORMRATE statement with numeric fields converted to packed decimal as follows:
FORMRATE Statement:
|
Field Name |
Field Length |
Displacement |
Format |
|---|---|---|---|
|
CPU Identification |
1 |
0 |
character |
|
SYSOUT Class |
1 |
1 |
character |
|
Forms ID |
4 |
2 |
character |
|
Setup charge |
3 |
6 |
packed (999v99) |
|
Line rate |
3 |
9 |
packed (999v99) |
|
Page rate |
3 |
12 |
packed (999v99) |
|
Charge option |
1 |
15 |
character |
The RJERATE statement information table consists of a variable number of entries with the last entry being followed by an entry containing low-values (x'00'). Each entry is in a format similar to the RJERATE statement with numeric fields converted to packed decimal as follows:
RJERATE Statement:
|
Field Name |
Field Length |
Displacement |
Format |
|---|---|---|---|
|
CPU Identification |
1 |
0 |
character |
|
Line name |
8 |
1 |
character |
|
Time rate |
4 |
9 |
packed (99999V99) |
|
Record rate |
3 |
13 |
packed (999V99) |
|
Connect rate |
4 |
16 |
packed (99999V99) |
|
Transmission rate |
3 |
20 |
packed (999V99) |
|
Minimum session charge |
3 |
23 |
packed (999V99) |
|
Job name |
8 |
26 |
character |
|
User information |
16 |
34 |
character |
When the record being processed is a summary record from the historical database, the working storage area contains the time and charge values accumulated into that record when it was created.
Only the RATE, VMRATE, FORMRATE, RJERATE, and PRIORITY statements required to generate a given report are present in their respective tables during this execution phase. Table entries are in the same order as the statements were read by the Report Writer.
The working storage area referenced in the parameter list contains the following fields:
|
Field Name |
Field Length |
Displacement |
Mode |
Notes |
|---|---|---|---|---|
|
Processor Time |
6 |
0 |
Packed |
999999V99999C; hours |
|
Processor Charge |
6 |
6 |
Packed |
999999999V99C; dollars |
|
I/O Time |
6 |
12 |
Packed |
999999V99999C; hours |
|
I/O Charge |
6 |
18 |
Packed |
999999999V99C; dollars |
|
U/R Charge |
5 |
24 |
Packed |
9999999V99C; dollars |
|
Setup Charge |
5 |
29 |
Packed |
9999999V99C; dollars |
|
Total Charge |
6 |
34 |
Packed |
999999999V99C; dollars |
|
Charge Suffix |
1 |
40 |
EBCDIC |
See below |
|
Adjusted Rate |
6 |
41 |
Packed |
999999999V99C; dollars |
|
Connect Charge |
5 |
47 |
Packed |
9999999V99C; dollars |
|
RJE Charge |
5 |
52 |
Packed |
9999999V99C; dollars |
The Charge Suffix indicates that the Total Charge field contains one of the following values:
|
Charge Suffix |
Meaning |
|---|---|
|
- |
Credit amount |
|
+ |
Debit amount |
|
* |
Budget amount |
|
M |
Minimum job charge |
|
B |
Block time charge |
|
blank |
Normal job charge |
Each accounting record and all pertinent billing parameters are made available through the parameter list. You can modify information in the accounting record and calculate the various time and charge fields related to the record.
Upon entry to the user exit routine, the time and charge fields in working storage are initialized and available for calculations. When the record being processed is a summary record from the historical database, the working storage area contains the time and charge values accumulated into that record when it was created.
The one-byte EBCDIC disposition indicator, as referenced through the parameter list, is blank upon entry to the user exit routine. A hex 'FF' (high values) upon entry indicates that an end-of-file condition has occurred and no further record processing is to be performed.
You should take this opportunity to prepare totals, generate user-formatted reports, close any files you opened, etc. You can optionally set the one-byte EBCDIC disposition indicator to specify the following action to be taken upon each return to the Report Writer:
|
Disposition Indicator |
Meaning |
|---|---|
|
blank |
Default - normal processing continues with calculating values in working storage area using standard accounting algorithm. |
|
1 |
Skip standard accounting algorithm calculations - use values in working storage area as placed there by user exit routine. |
|
2 |
Reject record from further processing - read next input accounting record. |
| Copyright © 2012 CA. All rights reserved. |
|