Sie sind auf Seite 1von 18

How Do I Use Processing Classes in SAP Payroll?

Explore how your Payroll system uses processing classes. Our HR expert offers helpful hints and tips and explains
how to create your own processing classes.

Dear HR Expert,

I have worked in SAP HR Payroll/Time for a couple of years, but I still do not completely understand the concept of
processing classes in wage type table T512W. Can you please explain?

— Venkata Atkuru, Systems Analyst, Metropolitan Water Reclamation District of Greater Chicago, IL

Processing classes are one of the key methods of processing wage types in SAP Payroll. Processing classes are
attributes of a wage type. When payroll runs, various procedures select and process wage types based on their
processing class values. In addition to standard processing classes delivered by SAP, customers can create their
own for custom payroll processing — for example, a class for fringe benefits.

A wage type has 99 processing classes, though Payroll does not use every one of them for every country’s payroll.
Table T52D8 shows which processing classes apply to each country. Customers can use processing classes 90
through 99 for their own purposes and the others are delivered by SAP.

Several views maintain processing classes, but V_512W_O is a good, general view that lets you work with all 99
processing classes at once. Figure 1 shows this view for wage type 0SAL, which is a US salary wage type.
Processing classes with a white box beneath them are available for US payroll. The Payroll system does not use
the other processing classes for US payroll processing, so they are unavailable for input. Some processing classes
are blank because Payroll does not use them for this type of wage type in some cases. For example, Payroll uses
processing class 72 to define whether a wage type is an employee tax or an employer tax.
Since salary is neither, the screen displays no value.

Figure 1 View V_512W_O shows all processing classes

Depending on how you use a processing class, a blank value may or may not work. It depends on how SAP
created and uses the processing class. In either case, the processing class documentation should explain the
purpose of each value. Select the processing class with the mouse, and then press the F1 key for help
documentation or the F4 key for a list of possible values.
Note
Ninety-nine processing classes should be sufficient for most companies. I’ve never run out of custom processing
classes. If you run out, you could use evaluation classes or create dual-use processing classes, but this is an issue
very few people face.

How Does Payroll Use Processing Classes?

You can access processing classes in two ways, via payroll functions and payroll operations. A payroll function
looks at certain processing classes and then processes wage types based on which value it discovers. For
example, US payroll uses the RGRTE payroll function to calculate the Fair Labor Standard Act (FLSA) regular rate
of pay for an employee. To perform this calculation, the RGRTE function must know which wage types contribute to
the regular rate of pay and which wage types calculate that regular rate. The RGRTE function uses processing
class 85 to determine which wage types apply to the different parts of the calculation, as shown in Figure 2. SAP
delivers the RGRTE function and processing class 85. When customizing your Payroll system, you specify which
processing class 85 values to assign to your wage types.

Figure 2 Processing class 85 values

Payroll operations can also access a wage type’s processing class values. You can use the payroll operation
VWTCL in a personnel calculation rule (PCR, or “rule” for short) to retrieve the current wage type’s processing
class value. A good example is SAP’s standard rule X023, shown in Figure 3. Line 000010 finds the current wage
type’s value for processing class 000020 and returns it to the variable key. If the value is 1, then the system
executes line 000030; if 2, then line 000040; and so on through value B. If processing class 000020 contains none
of these values, then the system uses the default value *, which executes line 000020.
Figure 3 Rule X023

You can use report RPDLGA20 (transaction PC00_M99_DLGA20) to determine which wage types have a certain
processing class value. It reports on the same data shown in view V_512W_O. Figure 4 displays that report’s
output, using its tree display option. You can browse through the processing classes and see which wage types
have processing class 20, value 4.

Figure 4 View wage types with processing class 20

Processing Classes Are Date-Effective

Of the two ways to structure payroll calculations — hard-coding wage types and using processing classes — only
processing classes are date-effective. If you must change the payroll calculation logic for a given wage type, you
have to make that change date effective or subsequent retro-calculations will use the new logic, resulting in
calculation differences.
Processing classes are attributes of a wage type, and wage types are configured with begin and end dates (Figure
1), so processing classes are much better suited for structuring payroll calculations. The system processes new
wage types copied from a working model wage type in the same way as it uses processing classes, but you need
to update the rule if the wage types were hard-coded.

You can access a wage type’s processing class in payroll calculations via a payroll operation in a PCR. The
VWTCL operation reads the wage type’s processing class based on the end date of the payroll period. If a wage
type splits in the middle of the period, the VWTCL operation uses the end date of that split. For example, if a
monthly employee’s salary increases from $2,000 to $3,000 on January 10, the Payroll system creates two salary
wage types. The first wage type includes dates from January 1 through January 9, and the second from January
10 through January 31. The VWTCL operation reads the wage type as of January 9 for the $2,000 salary and
January 31 for the $3,000 salary.

Payroll functions typically follow the above logic, but because they are coded in ABAP, it’s possible that the
business rules for the function require that the system read the wage type with a different date, such as the check
date. The function’s documentation should specify how to use the dates, but if it doesn’t, then you have to examine
its ABAP code. You can access the documentation and ABAP code for functions and operations with transaction
PE04.

Create Your Own Processing Classes

Most companies need to use a custom processing class. You can use the IMG shown in Figure 5 to define your
own processing classes and the values they use. You can document both the processing class and each of the
values online by clicking on the blue and white information icon to the left of the name. If you maintain this
documentation, users see it when they press F1 in the V_512W_O view.

Figure 5 IMG path for processing classes

Define your own processing classes when you need to process a set of wage types together for a specific
calculation. For example, perhaps you have to calculate a fringe benefits expense as a percentage of certain wage
types in payroll, but this expense varies per group of wage types. You could define processing class 90 as “fringe
benefits wage types,” and then create values for each of the wage type groups. For example, use a value of 1 for
each wage type evaluated with a 1% rate, a value of 2 for all wage types with a 5% rate, as shown in Figure 6.
Figure 6 Custom processing class for fringe benefits calculation

Next, create a custom rule to process all wage types that have a processing class value 90, shown in Figure 7.
For each wage type the rule uses, query its processing class value 90 in line 000010. If the value is 1, then the
system executes line 000030, creating the fringe benefits expense in wage type 9BEN. For value 2, the system
executes line 000040. If processing class 90 is any other value, then the system executes line 000020, which
calculates nothing for wage type 9BEN. If in the future, a wage type is supposed to go from a rate of 1% to 5%, it is
simply delimited with a new effective date via configuration in view V_512W_O. Then the system changes
processing class 90 automatically for that new effective date.

Figure 7 Use processing class 90 in a rule

Tip!
Use report RPUCCOSE to search for specific texts in a PCR. For example, to find all rules using processing class
20, search for “*VWTCL 20*.”

Tip!
You can also use processing classes in your custom ABAP reports and payroll functions. The VWTCL operation
uses a routine with form VXKLAS in the ABAP include RPCBU309_ VVKLAS. You could also use that form’s logic
in your company’s custom ABAP reporting.

Steve Bogner is managing partner at Insight Consulting Partners and has been working with SAP HR since 1993.
He has consulted for various public, private, domestic, and global companies on their SAP HR/Payroll
implementations; presented at the SAP user’s group ASUG; and been featured on Sky Radio Network regarding
SAP HR. You may reach Steve via email at sbogner@insightcp.com.

How Wage Type Valuation Bases Turn Payroll Numbers into Money
by Ian Moogan, Senior SAP Analyst, Avecia Ltd. Payroll,

Within any payroll, there will always be payments input as numbers that then need to be converted into money.
The method of achieving this in R/3 is known as the "wage type valuation base." The author gives some
background on valuation bases and shows how each works. He provides two examples of using valuation bases
for processing, one for a charitable deduction and one for calculating the pay for five hours of overtime.

Within any payroll, there will always be payments input as numbers that then need to be converted into money.
Examples are:
 Number of hours of overtime paid at time and a half
 Number of tickets in the company lottery
 Different levels of coverage in the company health plan

The method of achieving this within R/3 is known as the “wage type valuation base.” You can use valuation bases
in a number of different ways to process rates within the payroll schema. After I give you some background on
valuation bases and how they are assigned to your wage types, I’ll show you how each of these methods works. I’ll
end with two examples of using valuation bases for processing, one for a charitable deduction, and one for
calculating the pay for five hours of overtime.

Assigning a Valuation Base to a Wage Type

The key to the assignment of a valuation base to a wage type is table T512W. If you look at this table in
transaction SM30 using view V_512W_B, you can drill down into each wage type to display the valuation bases.

As you can see in Figure 1, the Valuation Bases area is divided into three sections, Current wage type, 1st
derived wage type, and 2nd derived wage type. Each section contains the following three fields:

Figure 1 Table T512W, view V_512W_B

Valuation basis: This field specifies how the system should determine what value to apply to the wage type.

Statement WT: This field allows you to take the value you calculate when you apply the valuation base and store it
in a different wage type. If you do not specify a statement wage type, the derived value is stored in the original
wage type.

% rate: This field allows you to take the value derived from the number input in the wage type and the valuation
basis and applies a percentage to it. For example, you could input 10 hours of overtime and apply a valuation
basis that tells the system to use the employee’s hourly rate to derive the amount. However, if you specify 150
percent in the % rate field, the payroll multiplies the final amount by 1.5 to give overtime at time and a half.

Two other sections within this screen allow you to take the number in the original wage type and derive up to two
more wage types. An example would be if you wished to pay a $1 bonus for every hour of overtime specified in the
last example. You could use the 1st derived wage type field and specify a valuation basis that tells the system to
look up a constant value. You then apply that to store the output in a second statement wage type.
Valuation Basis

The Valuation basis field can have one of the following values. (If the field has no entry specified, no valuation
basis is applied to the wage type.)

 Valuation basis K: The rate to apply to the wage type is read from table T510J. You should use this
valuation basis when the same rate is to be applied to all employees for this wage type. An example
would be a health club subscription that has been charged at $10 since June 2000. Figure 2 shows how
the entry in T510J would look.

Figure 2 Table T510J with valuation constants

The PMod. field in Figure 2 is the payroll modifier 02 (Table Constant for Wage Type Valuation), which has a
default value of 01. However, you can set it in the personnel calculation rule (PCR) that sets the modifiers for
payroll accounting to subdivide your employees if your processes require that. For example, in the United
Kingdom, CMOD is called in subschema GT00 (Processing of Time Data: Great Britain), while in the United States,
UMOD is called in subschema UM00.

 Valuation basis TS: This entry specifies that the rate for the wage type is dependent on the employee’s
pay scale level and should be read from table T510. This table is keyed on the following fields: Country
grouping, Pay scale type, Pay scale area, Pay scale group, Pay scale level, and Wage type.

For the value to be read from this table, all the above fields must be matched for the employee. If they do not
match, no rate is derived for the wage type.

You can access table T510 via transaction SM30 with view V_T510. You are first asked to specify the Country
grouping, Pay scale type, and Pay scale area (Figure 3).
Figure 3 View V_T510 to determine work area

Figure 4 shows an example of a wage type for which the valuation is dependent on the pay scale group (PS
group) and level (Lv), i.e., using valuation basis TS.

 Valuation basis TG: This specifies that the rate for the wage type should be read from table T510. In this
case, the system ignores the Pay scale level field when reading the table.
 Valuation basis T: Table T510 is used to find the rate to be applied. In this case, both the pay scale level
and pay scale group are ignored when reading the value. Therefore, the employee’s country grouping,
pay scale type, and pay scale area determine the value that is returned.
 Valuation basis nn: If this valuation basis is specified, the rate is derived from a technical wage type, /
0nn. These technical wage types are used to hold rates. For example, /001 holds an employee’s hourly
rate, /003 holds a daily rate, and so on.

Therefore, valuation bases K, T, TS, and TG involve value look-ups from tables, while
valuation basis nn is reliant upon the values held in other technical wage types. Now I’ll
show you how technical wage types derive their values within the payroll processing.
Figure 4 View V_T510 specifying valuation basis TS

Wage Type /0nn

The key to valuation basis nn is that the technical wage type, /0nn, holds the correct value for the rate to be
applied to the wage type. This is calculated within your payroll schema in a three-step process:

Step 1. Calculate the employee’s basic pay.

Step 2. Divide the employee’s basic pay by time constants to calculate rates.

Step 3. Convert the numbers to money within the payroll.

Step 1. Calculate the employee’s basic pay

The employee’s total basic pay is calculated in the PCR G010 (Determine Valuation Basis) or your company’s
version of it, which is called in subschema GT00 (Gross Payment).

This PCR makes a decision on processing class 01 (Assignment to Valuation Bases) for all the wage types in the
internal input table (IT). The IT contains the wage types as they enter the PCR, while an internal output table (OT)
or result table (RT) stores the wage types after the processing step. The IT and OT are temporary tables that exist
only during the payroll run, whereas the RT is stored in the database. This processing class is delivered with the
values in the SAP standard system (Figure 5).

To obtain a summary of the wage types that are assigned a particular processing class, evaluation class,
cumulation class, or valuation basis, run program RPDLGA20 from transaction SE38 and drill down into the
classification you require. This may be useful, for example, if you need to determine all the wage types that have
Processing class: 01 set to value “1.”

Figure 6 shows the basic structure of PCR G010.

If the only wage type in the input table that has processing class 01 set to 1 is basic pay (wage type 1100), the IT
for G010 appears as you see it in Figure 7.

Once the processing is complete, the OT from PCR G010 appears as shown in Figure 8, with the valuation
wage types set.
Figure 5 Processing class 01 values

G010 Determine Valuation Basis (GB)


|__! 1
|__! 2
|__” 3
|__” ****
|___” VWCTL 01 Decide on Processing Class 01
|_” *
| |_ ERROR
|
|_” 0
| |__ADDWT * Transfer Wage Type to Output Table
|
|_” 1
|__ADDWT * Transfer Wage Type to Output Table
|__ELIMI Z Removes the Time Unit Splits
|__ZERO= N Set the Num Field to Zero
|__ADDWT /001 Transfer Wage Type to /001 in OT
|__ADDWT /010 Transfer Wage Type to /010 in OT
|__. . . . .
|

Figure 6 Processing within PCR G010


Figure 7 Input table to PCR G010

Figure 8 PCR G010 output table

Step 2. Divide the employee’s basic pay by time constants to calculate rates

The values stored in the valuation base technical wage types are then read in PCR G013 (Division of Valuation
Bases), or your company’s version of it, which is called in subschema GT00.

This PCR also makes a decision on processing class 01 (Assignment to Valuation Bases) for all the wage types in
the internal table. However, unless the wage type has a value of 5 (Division of Valuation Bases) in this processing
class, the wage type is transferred to the OT unchanged. If the wage type has the processing class set to 5, the
wage type is processed as shown in Figure 9.

Report RPDLGA20 shows that the wage types that have processing class 01 set to 5 are the technical valuation
base wage types, /0nn.

The values that are used to determine the rates can be seen in table PARTT at the beginning of subschema GT00,
which is read from the personal work schedule (table PSP). For the example employee shown in Figure 8, table
PARTT would look like what you see in Figure 10.

G013 Division of Valuation Bases (GB)


|__! 1
|__! 2
|__” 3
|__” ****
|___” VWCTL 01 Decide on Processing Class 01
|_” *
| |__ADDWT * Transfer Wage Type to Output Table
|
|_” 5
|__” WGTYP? Decide on the Wage Type
|__” **** Wage Type /001 (others are hard coded)
|__RTE=TSDIVP Set the Rate to Working Hours per period
|__DIVID ARR Divide Amt by Rte and Store in Rte
|__ZERO= A Set Amt to Zero
|__ADDWT * Transfer Wage Type to OT
|__. . . . .
|

Figure 9 Processing within PCR G013

Figure 10 Table PARTT

It can be confusing relating the values from PARTT to the rates used in PCR G013. However, it may help to keep
the following in mind:

Within table PARTT, any lines with the TypePPar field set to T refer to partial period’s splits. TypePPar set to G
refers to the whole period.

Within the table itself, the time fields are split into three groups of three fields:

 Group 1 refers to the employee’s planned working time from the employee’s personal work schedule for
the payroll period. The fields shown in PARTT equate to the following rate constants:

CDays (calendar days)>KSOLL


WDays (work days)>ASOLL
WHrs (work hours)>SSOLL

 Group 2 refers to the employee’s total working time for the payroll period. The fields shown in PARTT
equate to the following rate constants:
CD1W (calendar days)>KDIVI
WD1W (work days)>ADIVI
WH1W (work hours)>SDIVI

 Group 3 refers to the payroll accounting period constants. Fields CDcon and WDcon are read from table
T510H. WHcon is the employee’s basic pay divisor, which is held in field DIVGV on infotype 8. The fields
shown in PARTT equate to the following rate constants:

CDcon (calendar days)>KDIVP


WDcon (work days)>ADIVP
WHcon (work hours)>SDIVP

Therefore, for my example employee, PCR G013 performs the following calculation:

/001 Amount / SDIVP = /001


Rate (Hourly)
$3,750.00 / 156.00 = $24.04

/003 Amount / ADIVP = /003


Rate (Daily)
$3,750 / 22 = $170.45

You can see this in the OT from PCR G013, shown in Figure 11.

Step 3: Convert the numbers to money within the payroll

Once the necessary valuation base wage types have been created in the payroll run, the schema applies the base
to the appropriate wage types. This is performed in PCR G015 (Valuation of Time-Related Wage Types), or your
copy of it.

PCR G015 depends on operation VALBS, which is used to read the valuation base from table T512W for a wage
type. If a valuation base is found, the operation returns the valuation basis rate in the rate field of the wage type
and multiplies the rate field by the number field to return an amount.

If you look at PCR G015, you see the processing shown in Figure 12.

Valuation Bases Usage Examples

Now that you have seen how to assign valuation bases to wage types, I’m going to illustrate the process with two
examples: a donation to a charity and the calculation of pay for five hours of overtime.

Example 1: Valuation Basis 01

An annual plan is in place whereby at Christmas, an employee can elect to donate one hour of pay to a charity for
children. To process this within the payroll, a new wage type, 3503 (Children’s Promise), is created. This wage
type is input on infotype 15 as a negative number of hours (Figure 13).

Wage type 3503 is then set up in T512W with a primary Valuation basis of 01 (Figure 14). The hourly Valuation
rate in /001 (Figure 15) is $24.04, and the Children’s wage type (3503) has only the number field set to minus 1.

After processing in PCR G015, the OT (Figure 16 on the next page) shows that the valuated Children’s wage
type, 3503, has the rate applied, and the Amount field now holds 24.04-.
Figure 11 PCR G013 output table

G015 Valuation of Wage Types from Time Management


|__! *
|__! 1
|__! 2
|__” 3
|__” ****
|___” AMT?0 Has the Wage Type been Valuated before
|_” *
| |__ADDWT * Transfer Wage Type to Output Table
|_” =
|__” NUM?0 Make sure the Wage Type has a number
|__” * Wage Type /001 (others are hard coded)
|__” RTE?0 Has a Rate been specified (no need for Val Base)
|_” *
|_” =
|_VALBS? Has a Valuation Base been input on T512W
|_” *
|_” =
|_VALBS0 Read Primary Valuation Base
|_ADDNA * Combine Num & Amt
|_FILLF N Restore original Num Field
|_WGTYP=* Transfer the Wage Type to OT
|_VALBS1 Read the Secondary Valuation Base
|_. . . . .
|
Figure 12 Processing within PCR G015

Figure 13 Infotype 15 (Children’s Promise)

Figure 14 V_512W_B (wage type 3503)


Figure 15 Input table to PCR GO15

Figure 16 Output table from PCR G015

Example 2: Processing a Secondary Valuation Base

When you pay an Overtime Premium (wage type 5102) at 160 percent to employees, you also have a standard
non-core-hours payment (wage type 5209) that is used to compensate employees at a rate of $1.50 per overtime
hour worked. To process this in the payroll, set up wage type 5102 in table T512W, as shown in Figure 17 on the
next page.

The primary valuation basis is calculated using Valuation basis 01 (Working Hours), and a percentage rate of
160. The secondary valuation base uses Valuation basis K to derive wage type 5209. As Valuation basis K
specifies the rate is in table T510J, an entry was created in the table for wage type 5102 (Figure 18).

If an employee with a monthly basic salary of $3,050.78 on a standard contract of 156


hours per month has worked five hours premium overtime in the month, the following
calculation is performed:

/001 = $3,050.78 / 156


= $19.56

WT 5102 = RTE /001 * %RTE * Num Hours WT 5102


= $19.56 * 1.6 * 5
= $156.48

WT 5209 = T510J Rate * Num Hours WT 5102


= $1.50 * 5
= $7.50

The output table from PCR G015 is as shown in Figure 19.

Figure 17 View V_512W_B for wage type 5102


Figure 18 Table T510J

Figure 19 Output table for wage types 5102 and 5209

Das könnte Ihnen auch gefallen