To change data in payroll cluster tables
Why do we need to?
Post SAP HR module Implementation especially when it is first go live for the client it is always recommendable to have few programs or shortcuts handy in SAP which would help get over very critical issues faced mainly due to Improper data loads of Legacy data to SAP during cut over phase. One of the programs I strongly recommend would be the program which can manipulate or change the data in payroll cluster tables.
Generally when business is very new to SAP HR there will be many issues during payroll runs due to below reasons
1) Improper maintenance of master data
2) Ignoring the warning messages
3) Running payroll without proper prior data verification
4) Improper data loads of Legacy data to SAP
After payroll is run for an employee, and payments are also processed now during the subsequent jobs i.e. in third party remittances and FICO live runs employee ends up in many cost center errors and ‘V0 split doesn’t exist’ errors during Third party remittance job. This is a situation where we cant delete the employee’s payroll results and correct the data and re run the payroll but neither we cant go ahead with third party and FICO jobs. This is the perfect example where we can use this program and use it to correct the data in payroll clusters and go ahead with the jobs.Other than mentioned, there will be many scenarios in which this program will be handy during very few months post go live.
How is it done?
This program uses a file (employee and SEQNR) as input and changes the payroll cluster table with the correct data and outputs a success or failure message after update.
If you already know the purpose or the correct data to be populated we can write it in the code directly otherwise we can just write code for changing the payroll cluster and then change the data by debugging this program.
Here are the brief steps which describe the program skeleton: Complete code is attached for reference
1) Open the input file through function module GUI_UPLOAD and convert it to internal table
2) Loop through this internal table and read the employee and get the payroll results of this employee for the Sequence number through two function modules CU_READ_RGDIR and PYXX_READ_PAYROLL_RESULT
3) Now in this step it is up to our requirement where we can code the correct data changing steps or leave it blank for us to put it in debugging
4) After above step we have to call function module PYXX_WRITE_PAYROLL_RESULT to save the data in internal table to clusters
5) Function module HR_FLUSH_BUFFER_UPDATE_PCLX is used to update the database from buffer.
6) Finally we can populate the success or failure messages depending on the output of these functional modules.
When is it useful and handy?
Would like to state few scenarios in which this program would be handy
1) Few employees who gets retired and if his/her cost center was not maintained in IT0027, therefore WPBP or C0 cluster was not updated during payroll run which causes many errors in FICO as below
2) Few employee’s V0 cluster is not updated for third party remittance wage types due to an issue in data loads to IT0221 info type during an payroll adjustment run, hence subsequent payroll results had wrong data which caused errors in Third party remittance job