Previous Topic: Account Exit

Next Topic: Exit #2


Exit #1

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.