The common library report, FOC4003 identifies your current R06 employees who are at the maximum rate for their class and range. Usually, this type of report is generated by identifying employees whose anniversary date is equal to 'MAX'. However, if anniversary date is not accurate, the report request below provides an alternative method by comparing the maximum rate for a class and range to the employee's base pay amount.
A join (JACPS) is used to retrieve records at the class and range level from both the Active Current Status (AC) file and the Payscales (PS) file, and a match is required because separate approaches are needed for the each of the class record types, C and F, for this CBID. The report request can be executed 'as is' from the common library, or it can be copied to your library and modified for your reporting needs. A sample of the final report is shown below.
REPORT OF R06 EMPLOYEES AT MAX
COMMON: FOC4003
EMPLOYEE SSA CLASS RNG BASEPAY
-------------- ----- ---- --- -------
BABOON, JON 555-66-1111 6265 1 $5,744.00
CAMEL, LINDA 111-33-4444 6536 1 $4,086.00
TURTLE, RUDY 333-00-0000 6251 1 $4,335.00
Record Type C
For employees with record type C, step-rate classes, a comparison is needed between the employee's base pay and the rate of the maximum step for that class and range. Because the maximum step is a code, not an amount, a defined field is needed to identify the corresponding rate of pay. Since there are only a few maximum steps for record type C classes, they were identified by a separate report that is not included in the common library report request. The define (MAXRATE) is as follows:
EX JACPS
DEFINE FILE AC ADD
MAXRATE/P12.2 = IF PS:STEPMAX EQ '01' THEN PS:ST1 ELSE
IF PS:STEPMAX EQ '04' THEN PS:ST4 ELSE
IF PS:STEPMAX EQ '06' THEN PS:ST6 ELSE
IF PS:STEPMAX EQ '07' THEN PS:ST7 ELSE
IF PS:STEPMAX EQ '08' THEN PS:ST8 ELSE
IF PS:STEPMAX EQ '15' THEN PS:ST15 ELSE 0;
END
The first (old) portion of the match request retrieves data for your R06 employees in step-rate classes (certified apprentices). A WHERE statement is used to compare the employee's base pay and the maximum rate (defined above) and select only those records where the amount is equal. Note: Some of the fields are only printed for verification purposes and do not appear in the final report.
MATCH FILE AC
PRINT PS:STEPMAX MAXRATE
BY AC:SSA BY AC:WNAME BY AC:CLASS BY AC:RANGE BY PS:RECTYPE BY AC:BASEPAY
IF PS:CBID EQ R06
IF PS:RECTYPE EQ C
WHERE AC:BASEPAY EQ MAXRATE
RUN
Record Type F
The second (new) portion of the report request retrieves data for your R06 employees with record type F, min-max classes. A WHERE statement is used to compare the employee's base pay and the maximum rate (PS:MAX) and select only those records where the amount is equal. The matched data is placed in the hold file named PERMRPT and is a displayed using a wildcard command (*) for verification. Note: The lines for verification are commented out in the common library report request.
FILE AC
PRINT PS:MAX
BY AC:SSA BY AC:WNAME BY AC:CLASS BY AC:RANGE BY PS:RECTYPE BY AC:BASEPAY
IF PS:CBID EQ R06
IF PS:RECTYPE EQ F
WHERE AC:BASEPAY EQ PS:MAX
AFTER MATCH HOLD AS PERMRPT OLD-OR-NEW
END
-*
TABLE FILE PERMRPT
PRINT *
END
Final Report
The resulting hold file, PERMRPT, contains only those R06 employees whose base pay equals the maximum rate for their class and range. This portion of the report request generates a printed report.
TABLE FILE PERMRPT
HEADING CENTER
"REPORT OF R06 EMPLOYEES AT MAX"
"COMMON: FOC4003"
PRINT AC:WNAME/A20 AS 'EMPLOYEE'
AC:SSA AS 'SSA'
AC:CLASS AS 'CLASS'
AC:RANGE AS 'RNG'
AC:BASEPAY AS 'BASEPAY'
BY AC:WNAME NOPRINT
END
Last Updated: March 1, 2024