SAP HR Payroll
Separate Payroll Areas

Remember that one of the criteria for choosing separate payroll areas is that each payroll area has to have a separate PAYE reference. You can't have more than 1 PAYE reference for the same payroll area.

There are also other criteria for choosing separate payroll areas. The pay frequency and pay date are key criteria as well.

In addition, there may be other factors such as how you wish to report on your employees which may be driven by business needs rather than by SAP validation checks and statutory conditions.

Error Message relating to Negative Pay

You may find that you are running the first payroll period for the new tax year and you get the error message:

This period's taxable pay takes total year to date into a negative situation

You also get this situation for leavers. See the topic relating to that issue and solution as well.

The error and scenario described above can be as a result of a retro going back over the year end for an absence update to the system (e.g. SSP/SMP in the UK).

The above error may be solved by re-importing the ORT at the appropriate stage of the schema. It can happen that during the schema when SAP is comparing the ORT it may be using spurious results which may contain incorrect figures.

You can get around this by re-importing the ORT using the function IMPRT O, just before the new processing is carried out. See the OSS notes 653211 and 721490. The OSS note 653211 contains more details on how to undertake this piece of work.

How does SAP handle 52 and 53 week tax years?

The answer to the above question is best answered by looking at the many OSS notes which cover the above topic. There are many notes covering this topic.

Handling Late Leavers with GRET

Typically the following can happen in your organisation. An employee leaves directly after the bank transfer has been initiated. The company wants to retrieve the money owed. It's probable that you will end up with a negative value for the technical wage type /121 - taxable gross pay.

The error that you will normally see in the payroll log is:


This is a typical situation in the UK which is caused by a late leaver. The UK has a special schema for handling this scenario. The schema is GRET (or your customised version of it) which needs to be run instead of G000 (or your customised version of it).

The difference between the 2 schemas is the gross to net processing (G000 uses GNT0 whereas GRET uses GNT9).

When the tax rewrite takes place SAP is hoping to get rid of GRET, but until that happens, when you get a negative /121 (which is usually a classic sign for a late leaver) you will need to run GRET.

With GRET, the retro processing does not take place as per usual with the normal schema. In addition, whereas the normal schema G000 calculates the tax cumulatively (unless the employee is on a week1/month1 tax basis), GRET recalculates the tax period by period.

Searching for Key Documents on the SAP Support website

If you struggle to remember where SAP holds the key documents and guides for HR and Payroll, just type in the shortcut after the URL. For the UK add "hrgb". The full URL then becomes:

For other countries just add the 2 appropriate letters after hr. The following are valid examples: South Africa Germany

If you are searching for UK specific documents relating to SxP, eFiling etc just drill down into the documents in the menu on the left hand side or use the useful "Quick Links" on the right hand side.

Checking for Deleted Payroll Results

To find out which payroll results have been deleted you can check this by using transaction code SLG1. Use the object HRPU.

Reporting on Payments sent to the bank

There are a number of different reports for determining the cash breakdown of bank payments made to employees. UK payroll staff used to use the report RPCGTNG0. This was replaced by the Payroll Journal report (RPCLJNG9) as outlined in OSS note 427685. Whilst the payroll journal is useful, it requires the wagetypes to be configured on evaluation class 03. The transaction code to get to this report is PC00_M08_CLJN.

Another useful report is the Payroll Results Check Tool (RPCRECG0). Before this can output meaningful results, the Payroll Results Check Tool generation ( RPURECG0) has to be run. For these reports to run properly, configuration has to be carried out for evaluation class 15.

Another extremely useful report output is the Cash Breakdown for Cash Payment based on Payment Method (H99CMLI0). The required transaction code is PC00_M99_CMLI0_NEW. Use the SAP standard variants to start with. The variant SAP&GB_PAYMENT is a good one to start with. When you get your output, click on the hyperlink which is offered to you when you hover on the * on each of the different output lines.


This will be old hat for most of you, but for those who are learning payroll, it is important to remember that there are certain mandatory infotypes which an employee must have, in order for you to run a successful payroll for them. One of those infotypes is Planned Working Time (0007). If you delete an employee's Basic Pay infotype (0008) record, the payroll will still run, but falls over if you have entered any overtime etc. You can, however, have an infotype 8 record, without any wagetypes.

Payroll Simulation from IT 0008

Payroll Simulation from Infotype 0008 - Feature PM004

If you wish to run a payroll simulation from infotype 8, you can do so by modifying the feature PM004 - to reflect the lines indicated below.

  1. 000030 IT D ABKRS
  2. 000040 IT S1 &PM004=1/INFOTYPE 8 S1
  3. 000050 IT S3 &PM004=1/INFOTYPE 8 S3
  4. 000060 IT W1 &PM004=1/INFOTYPE 8 W1
  5. 000070 IT ** &PM004=

The above variants were created. The feature links the payroll area to the corresponding feature.

Details of Deleted Payroll Results

Choose transaction SLG1.

The Evaluate application log screen appears.

In the Object field, enter HRPU. In the Time Restriction group box, enter dates and times to determine the period you want to check. Choose Program Execute.

A list of payroll results deleted during the specified period is displayed. The list displays the deletion date and the administrator who has deleted the payroll result.

Select an entry from the list. Choose Goto Display messages

Notifications on Payslip - General and Personnel

Use the menu path:

Tools SAP Script Standard Text

or transaction code SO10.

Use the ID: HR_G which is the one for general messages. Type the message, save it and then attach it to an employee or group of employees on IT 128 - sub-type 1 or 2, so that it can appear on the payslip.

You can use the fast entry screen for master data - transaction code PA70. Note that for personal messages, you need to create an IT 0128 sub-type 2 for each applicable employee. For general messages you have to create an IT 0128 sub-type 1 for each and every employee in the payroll area. This can be a bit of an effort if you have a few thousand employees. Larger customers might wish to use CATT procedures or write an ABAP routine to automate the update.

There is a program RPU12800 which is a model report for creating batch input sessions for infotype 0128 subtype 2, personal notifications. You still have to use the standard fast data entry functions to enter records for subtype 1, general notifications, en masse.

Constant Amounts on a Wage Type - Indirect Valuation

If you are wanting to assign a value against a particular wage type you can use 3 different methods.

1. If you have the same value for different pay scale types and areas you can enter the amounts on table T510 for each type or area. You need to set the characteristics of the wage type to TARIF. When entering the wage type on IT0008, you specify the wage type and the value will then be defaulted in.

2. If you have the same value for each employee in the company, you can use T539J. Remember to insert the WT on the table and have the characteristics set to PRZNT or SUMME for the Indirect Valuation module. When entering the WT on IT 0008, you don't get to see the value of the amount.

3. If you have the same value for each employee for a particular WT, you can use table T511k which allows you to insert different constants. As in the previous case you will not be able to see the amount once entering the WT on IT 0008.

You can use different levels on the number/units to give you the flexibility to call different amounts. You can then call the constants found in T511K with the different amounts, where each amount is linked to a different level.

Payslip Config Extras

When writing rules for the payslip, remember that the rule has to cover all possibilities in order for it to work correctly. In other words, if the rule checks for EE Group, ensure that you have interrogated all the EE groups, otherwise the rule will not work correctly.

SAP has validation rules set up within the payslip config. If you wish to bypass this validation - enter the config directly on the T512... tables.

If you wish to configure a field on the payslip and SAP gives you the warning message "the table or field you entered is not valid". You can enter the pertinent table into table T514K and the field into table T514N. You may even find some fields on SAP-standard payslips which do not exist in these tables.

Payroll Control Record

Transaction Code: PA03 Menu Path:

Payroll Tools Control Record

The payroll control record allows you to control the state of the payroll run. Control records are not transported across clients. They have to be created in each client. The control record only advances to the next payroll period when you move it from a state of "Exit Payroll" to "Released for Payroll". You will be prompted with the warning: Payroll area xx: Do you want to release the period xx.yyyy for payroll?. Clicking yes will advance the payroll control record.

If you wish to change either the payroll period or the earliest retro accounting period, you have to delete the control record and then recreate it with the correct dates. Remember that if you are loading your cumulative values into period 6/2001 (i.e. running XLK0 for 6/2001) then you should set the earliest retro date to 7/2001. This will stop anyone from entering any data which may cause the payroll to try and retro into a period in which SAP never created a full set of payroll results.

The icons at the top left of the screen show you which employees have a matchcode of W (those employees who have had data modifications during the current payroll monthly cycle). The icon showing 2 employees next to one another is used to list all the employees who have been processed through the payroll for the current month. The locked icon indicates which employees have been locked and will therefore not be processed through the payroll.


When running the Pre-DME program, each employee processed has a specific time and date stamped in their payroll results in the BT table. This will be the same for all employees processed in each report - which is done per payroll area. If for some reason the report is terminated during processing, you can re-run the Pre-DME with the relevant time and date in the boxes at the bottom LHS. Fill in the time and date in the field Repeat Run and tick the checkbox "flagged records only". This will pick up all those employees and put them into a clean file. You can then run it again without the date and time - which will pick up all the employees who had not been processed at the time of the initial program termination - i.e. they would have no record on their BT table in their payroll results.

Take care to enter the payroll area in both the "period" and "selection" options. Failing to enter the payroll area in the selection field will mean that everyone in a payroll area with the same period parameters as the one selected at the top will be processed - which is rather dangerous.

Schemas and PCRs

1. Viewing the contents of any of the important tables during the payroll processing is very useful when trying to find the source of an error.

In the schema, you can use the function "print" and the name of the internal table in the parameter column - for example it, ot, ort etc.

Use the Operation "print" in the "cycle", to view the head entry of the "it" for every loop of the cycle.

2. Wishing to stop the payroll processing with a break point. You can do so using the conventional method of setting "break points" in the ABAP debugger.

Alternatively, you can insert a "BREAK" command in the schema at the point where you wish the program to stop. The corresponding ABAP will break at run-time. You don't have to set up breakpoint in ABAP explicitly.

When you reach the break, you can modify the table contents as is the case with the normal ABAP debugger.

Basic Pay split with different currency and payment method

Scenario: You would like an employee's basic pay to be split into 2 or more parts - with each part defined against a different currency.

You need to create more than one IT 0009 records - bank details with subtype 'other banks'. Here you can specify the absolute amount or a percentage to pay out with a specified currency.

Reversing Incorrectly paid amounts

Scenario: You may find that a payroll user mistakenly enters P45 details for a re-hire. After running the payroll the CRT will have the P45 taxable pay and tax paid wage types in it. How can you clear these out of the CRT?

Assign WTs E505 & E506 to IT 0015. You can then enter the reverse amounts for the affected employees. Make sure that these work in your version of the payroll schema, and that they cumulate the CRT or create wage types /505, /506 in the current RT and that these are updating CRT.

Payroll Results - Averages over a Period

You may have a requirement to produce a report that averages certain wage types over a number of periods.

You could use the Wage Type Distribution (RPCLGV09) to give you results for the past xx pay periods. You could then load the output into Excel to get the averages.

Basic Pay and Currencies

You are trying to create a basic pay infotype for an employee and it is giving you a warning message "No currency could be determined for country grouping xx"

You have already made the correct entry in table T510F

Check the entries in tables T005T and T500C