I. Purpose
Payroll is one of the most important parts in SAP HCM module. In order to control Payroll Schema and
Payroll processes easier, in this document Retroactive Accounting INTERNATIONAL will be explained
carefully. Moreover I will give you how to make clear payslip.
Now I will give you a typical example. I hired employee on 10-Jan-2012 with 1000$ monthly. If everything is
normally, he had been run payroll in Jan-2012 and his salary as picture below:
However as some reasons, he had not been processed payroll in Jan yet. He's only run payroll in Feb-2012.
So SAP will automatically run Payroll for this guy from Jan-2012 until Feb-2012 (2 periods). (Why does SAP
know Jan-2012 should be the first period running Payroll? It's just simply basing on field Earliest MD change in
Infotype 0003). After running Payroll, his salary will be accumulated as picture below:
As you can see in the picture, in Feb he only has 1000, but total is 1703,703 (including both Jan and Feb).
Yes, SAP automatically brings his salary on Jan-2012 into current period Feb-2012. It's called Retroactive
Accounting.
In original payroll (in our example it's Feb-2012), PCR X041 will be called.
In retro period, (I only focus on typical case), PCR X043 will be executed (in our example it's Jan-2012).
There are 2 important wage type you have to take note here. wage type /560 Payment Amount and /551
Retrocalc.difference
After running Payroll, /560 will store how much salary employee has in every period. Next, sub-schema XRR0
will be started.
In retro period (Jan-2012), value in /560 will be stored into Different Table by command:
1 record in DT for /551 will be created: For Payroll Period: 01, For Payroll Year: 2012
In original period (Feb-2012), value from DT (wage type /551) will be transferred into /560
So salary in Jan-2012 already moved to current period Feb-2012. It's the way Retroactive Accounting
INTERNATIONAL run in Payroll schema.
After that, Creating new PCR ZW10 to store value of Wage Type 1000 into Wage Type 1002 in Different Table
(DT):
And PCR ZW11 to read balances carried forward (differences): NOTE: ZW11 contains logic of PCR X041:
As you can see, purpose of PCR ZW10 is: using to store value in DT so it's will be inserted after PCR X043.
Logic of PCR ZW11 is: transferring data from DT into Result Table, it's the reason why it's will be putted after
X041. Please look picture below to know how I modified standard sub-schema XRR0.
Accomplishing modify your sub-schema as above, now employee's payslip will be very clear: Look at payslip,
employee can see how many salaries he got in Jan-2012. It's very convenient.
In my example, only wage type basic salary 1000. In your system, if there are more any more kind of wages,
simply insert more into 2PCR ZW10 and ZW11 above.
Net pay in Mar-2012 is correct: 2000 (1500 in Mar and +500 in Feb). However Arrears are wrong
Because I missed 1 important part, PCR X042 in XRR0 schema:
In retro period (Feb-2012), before calling X043 (explained in Part II), X042 is executed with function
Port. It brings actual Feb-2012 payroll and inserts into DT Different Table:
1 record in DT for /551 will be created : For Payroll Period: 02, For Payroll Year: 2012 (actual salary
employee received in Feb-2012). After that PCR X043 will be called.
Now basing on logic of PCR X042 (because in standard PCR X042, only technical wage type such as /560
executed), I modified my schema ZRRW by adding new PCR to process other wage types:
After running ZW09, 1 record for wage type 1002 created in DT table, value is -1000, because in actual payroll
Feb-2012 (Feb-2012 in Feb-2012) his basis salary was only 1000.
As you can see, in Mar-2013, I modified his salary + 500, so basic of Feb-2012 in current period Mar-2012 is
1500. And when executing PCR ZW10, value 1002 in Different Table is -1000 + 1500 = 500. Because I forgot
re-using value of Feb-2012 in period Feb-2012, in payslip Arrears shown 1500.
Now everything's fine as picture below:
Best Regards!
Woody