Enterprise Resource Planning Blogs by Members
Gain new perspectives and knowledge about enterprise resource planning in blog posts from community members. Share your own comments and ERP insights today!
Showing results for 
Search instead for 
Did you mean: 
Active Contributor

I. Relationship

     In International Payroll, as you may know, technical wage types are very important, such as: /801, /802, etc. These wage types contain factoring and will be multiplied with current values in wage types (inputted in PA30 Personnel Administration) and final results are employee's salary. In order to easier understand, let's see an example below: employee A has basic salary (wage type 1000) in IT0008 with value 1000$. And his salary is calculated by multiplying wage type 1000 with technical wage type /801. If he works full month, rate in /801 is 1, so he gets full basic salary 1000$. If he absences (unpaid or leave without pay), of course Rate in /801 is decreased (it's lower than 1), his salary is reduced as well.

     How are they processed in SAP HCM? Yes with 3 steps below:

1. Creating infotype involving salary (IT0008, IT0014, IT0015).

2. Time Evaluation

     2.1. Run daily and calculate how many working days or absence days (store in Time Type)

     2.2. When cut-off date comes, transferring value in Time Type into Time Wage Type.

3. Payroll:

     3.1. in sub-scheme XAL9 (Monthly factoring and storage (cumul.of gross amount) INTERNATIONAL), these technical wage type /801, /802, etc will be processed.

     3.2. multiply current value wage type in IT (0008, 0014, etc) with corresponding technical wage type (configured in processing class 10) /801, 802. etc.

     Finally, relationship is still TIME WAGE TYPE and process:

Time Evaluation run -> generate Time Type -> transferring to TIME WAGE TYPE -> Payroll run -> use TIME WAGE TYPE to calculate  Technical Wage Types.

     However, today I will not explain standard schema, I will share you solution to control your scheme by yourself to fit customer's complicated requirement. If you need understand standard schema, you can go inside schema and pressing F1 key .

II. Requirement

     In customer system there is an Absence Type - Sick Leave. Annually Sick Leave total will impact employee's salary as below:

1From 01 -> 15 daysFULL salary

2From 16 -> 25 days75% salary

3From 26 -> 35 days50%

4From 36 -> 45 days25%

5above 45 days0%

     With this request, modifying both Time and Payroll Schema by creating PCRs is good solution

III. Solution

    As mentioned in first part, some steps need to be done:

     1. Create 1 time type to accumulate Sick Leave Yearly.

     2. Creating 4 time types to store how many Sick Leave in 16 -> 25; 26 -> 35; 36 -> 45 and above 45. We have to store into 4 different Time Types, because the percentage salary doesn't equal for all.

     3. On the cut-off date: moving values from 4 time types into 4 Time Wage Types.

    Cut-off date in current topic is EOM End Of Month, in Understanding Relationship PT and PY it's 25th monthly, so there is a little bit different between configuration and logic. I don't need to carry forward value from last period to current period, and clear accumulate value in Time Type as well.

     4. In payroll schema: the values in time types will modify Technical Wage Type /801, /802, etc.

     In scope of this document, only demonstrate customizing /801.

1.Time Type Accumulated Sick Leave Yearly

     Go to V_T555A with T-code SM30 / SM31 and configure as below:


     Active Cumulate in period balance and Transfer prev. period to store all Sick Leave in 1 year. Don't need to Transfer prev. year.

     Creating 1 PCR to accumulate Sick Leave:


     Absence Code of Sick Leave is 1020. Whenever data in TIP retrieved from Absence (Origin status is A) and Subtype is 1020 in internal table TIP, plus 1 into time type 9WSL. Thanks to configure in V_T555A, value in Time Type 9WSL will be accumulated in Function CUMBT. PCR ZW05 is inserted into Time Schema ZW04 as below (ZW04's copied from standard schema TM04): after successfully call function P2001.


2. Comparing Annual Sick Leave

     We have to check whether Accumulated Sick Leave with 15, 25, 35 and 45, as it effects employee's salary. Creating 4 constants in V_T511K


     4 Time Types to hold values whenever 9WSL > ZSLL1 (15):

Time Type

1From 01 -> 15 daysFULL salaryN/A

2From 16 -> 25 days75% salary9W75

3From 26 -> 35 days50%9W50

4From 36 -> 45 days25%9W25

5above 45 days0%9W00

     4 Time Types share the same configuration as below:


     Setup PCR ZW06 to check 9WSL and insert into schema after PCR ZW05


HRS=M9WSL  => Accumulated Sick Leave until the day before current day.

HRS+D9WSL  => plus value in current day (as accumulating only execute in Function CUMBT).

If (M9WSL + D9WSL) > ZSLL4 (45):

     value in current day 9WSL will be updated into Time Type 9W00.

If (M9WSL + D9WSL) > ZSLL3 (35) and (M9WSL + D9WSL) <= 45

     value in current day 9WSL will be updated into Time Type 9W25.

If (M9WSL + D9WSL) > ZSLL2 (25) and (M9WSL + D9WSL) <= 35

     value in current day 9WSL will be updated into Time Type 9W50.

If (M9WSL + D9WSL) > ZSLL1 (15) and (M9WSL + D9WSL) <= 25

     value in current day 9WSL will be updated into Time Type 9W75.

3. Transferring Time Type into TIME WAGE TYPE on cut-off date

     On the EOM (End Of Month), PCR ZW07 will be called to bring value in Time Types to TIME WAGE TYPE


     Time Type 9W75 => Time Wage Type 9050

     Time Type 9W50 => Time Wage Type 9055

     Time Type 9W25 => Time Wage Type 9060

     Time Type 9W00 => Time Wage Type 9065.

     And merge ZW07 into Schema ZW04  as below:


     These are all steps in Time Schema. As you can see, after running Time Evaluation, 4 wage types 9050, 9055, 9060 and 9065 contain sick leave days in current period, how many sick leave days in 16 -> 25, 26-> 35, 36 -> 45 and above 45.

4. Modify Technical Wage Type /801 in Payroll

     Copy standard sub-schema XAL9 into ZALW with 2 new PCRs ZK08 and ZW14:


     First we have to change Number in Time Wage Type  9050 Sick Leave 75%, 9055 Sick Leave 50%, 9060 Sick Leave 25% because they are not deduction full. Only Time Wage Type 9065 is kept current value. It's executed in ZK08:


     Current value in 9050, 9055 and 9060 will be multiplied with corresponding Rates:


Finally, calculation technical wage type /801 in PCR ZW14


III. Testing

     Hiring employee with basic salary is 1000$ per month.

     Configure Wage Type 1000 with processing class 10 in V_512W_D:


     In Apr-2012, employee took 22 Sick Leave Absence days:

   And his salary was correct as picture below:

In Jul-2012, he requested 23 Sick Leave Absence

And Salary in Jul-2012 was exactly:

In the document, I have shared you how to control Time and Payroll as well. There are a lot of difficult requests in fact, so understanding deeply Time and Payroll schema is very important. If you investigate the topic carefully, you will be control schema by yourself soon and not scare touching schema anymore

Hope it helps!



Labels in this area