Overview of ABAP HR Programming 1. Overview & Features in HR Programming and Difference from conventional ABAP 2. Concepts of Infotypes (Structure/Processing etc.) 3. Concepts of Clusters (Import/Export etc.), cluster directory 4. Concepts of Macros (Import/Export etc.) 5. Retrieval of data using LDBs (PNP/PAP/APP/PCH) 6. Overview of PA/PD/& Integration between PA & PD Overview & Features in HR Programming and Difference from conventional ABAP The aim in the Human Resources component is to be able to process employee related data according to business requirements in an effective structure. The Human Resources module uses a system of data grouped together called infotypes. Infotypes mirror a quantity of connected data records; infotypes are identifiable through a four character numerical string [e.g. infotype Addresses (0006)] and a complete listing is included. You can save the infotypes as time-dependent to enable a retroactive evaluation of Employee data. The infotypes appear as an entry screen for the user, through which you can maintain infotype records. Infotypes can be processed individually or in fast entry mode. Difference from conventional ABAP Advanced Business Application Programming ABAP is SAP's fourth generation language. All of R/3's applications and even parts of its basic system are developed in ABAP. ABAP is used for customization and modification of SAP applications. In HR ABAP use of select statements significantly less than in other areas of ABAP development, Logical databases have limited applications in other modules but are very useful in HR. Also, you really need to understand the infotype time constraint concept, When you cannot get the information that you need out of the logical DB look at the function modules starting with HR* and RH*. These function modules will provide you with multiple ways of accessing data to save time. Worst-case scenario, use a select statement. Concepts of Infotypes (Structure/Processing etc.) Infotypes: An infotype represents a group of related data fields, provides information structure, facilitates data entry, and allows time dependent storage. In other words we can say infotypes are information units used to enter the time dependent data of the employee. Master data in HR is stored in infotypes. Each infotype pertains to a specific type of data. Each infotype has a database table associated with it. Time constraints: Enable you to determine how the validity periods of infotype data records interact Time constraint 1: Exactly one valid data record of the infotype in question must exist for the entire time that the employee belongs to the enterprise. Time constraint 2: No more than one valid data record of the infotype in question can exist at any one time.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Overview of ABAP HR Programming
1. Overview & Features in HR Programming and Difference from conventional ABAP 2. Concepts of Infotypes (Structure/Processing etc.) 3. Concepts of Clusters (Import/Export etc.), cluster directory 4. Concepts of Macros (Import/Export etc.) 5. Retrieval of data using LDBs (PNP/PAP/APP/PCH) 6. Overview of PA/PD/& Integration between PA & PD
Overview & Features in HR Programming and Difference from conventional ABAP
The aim in the Human Resources component is to be able to process employee related data according to business requirements in an effective structure. The Human Resources module uses a system of data grouped together called infotypes. Infotypes mirror a quantity of connected data records; infotypes are identifiable through a four character numerical string [e.g. infotype Addresses (0006)] and a complete listing is included. You can save the infotypes as time-dependent to enable a retroactive evaluation of Employee data. The infotypes appear as an entry screen for the user, through which you can maintain infotype records. Infotypes can be processed individually or in fast entry mode. Difference from conventional ABAP
Advanced Business Application Programming ABAP is SAP's fourth generation language. All of R/3's applications and even parts of its basic system are developed in ABAP. ABAP is used for customization and modification of SAP applications. In HR ABAP use of select statements significantly less than in other areas of ABAP development, Logical databases have limited applications in other modules but are very useful in HR. Also, you really need to understand the infotype time constraint concept, When you cannot get the information that you need out of the logical DB look at the function modules starting with HR* and RH*. These function modules will provide you with multiple ways of accessing data to save time. Worst-case scenario, use a select statement.
Concepts of Infotypes (Structure/Processing etc.)
Infotypes:
An infotype represents a group of related data fields, provides information structure, facilitates data entry, and allows time dependent storage. In other words we can say infotypes are information units used to enter the time dependent data of the employee. Master data in HR is stored in infotypes. Each infotype pertains to a specific type of data. Each infotype has a database table associated with it. Time constraints: Enable you to determine how the validity periods of infotype data records interact
Time constraint 1: Exactly one valid data record of the infotype in question must exist for the entire time that the employee belongs to the enterprise.
Time constraint 2: No more than one valid data record of the infotype in question can exist at any one time.
Time constraint 3: Any number of valid data records of the infotype in question can exist at any one time.
The prerequisites for the existence of a personnel or applicant number are infotypes 0000 Actions, 0001 Organizational Assignment, 0002 Personal Data, and 0003 Payroll Status. Transparent tables for infotype
Each infotype has a transparent table. Each logical field for an infotype has a corresponding physical field on the database. One physical table is stored on the database for each transparent table. The names of the physical table and logical table definition in the Dictionary are compatible. The following naming convention applies to infotype tables; nnnn stands for the infotype number:
PAnnnn for transparent tables in Personnel Administration
PBnnnn for transparent tables in Recruitment
HRPnnnn for transparent tables in Personnel Planning
Example: For Infotype 0000, the corresponding database table associated with it is PA0000
Check and Control Tables for HR Infotypes
Table T777D Infotypes - Dialog/Database Assignment is the central check table (domain INFOTYP) for all HR infotypes (Administration and planning infotypes). It is used to store the names of all infotype-dependent repository objects (tables, structures, programs, and so on).
Table T77ID Infotypes: Enhancements to T777D is simply an enhancement of table T777D that exists for reasons of memory space.
Table T582A Infotypes - Customer-Specific Settings is used for customer settings in Administration infotypes.
Table T77CD Infotypes - Customer-Specific Settings is used for customer settings in planning infotypes.
The primary key of transparent table PAnnnn consists of the following key fields:
PERNR: the personnel number is the only unique key within a client for identifying an employee. It is used
to access the display and maintenance screens for an employee‟s master data and working time data (infotypes).
SUBTY: subtypes are subdivisions of infotypes. An infotype‟s subtypes can have different time constraints
and form their own histories.
OBJPS: the object identification is used to make a distinction between records with the same infotype,
subtype, lock indicator, start date, and end date. For example, the child number in infotype 0021 Family/Related Person.
SPRPS: the lock indicator for HR master data is used to lock and unlock data records, which enables the
“double verification principle” to be put into practice. In accordance with this principle, at least two users are involved in the process of writing an active data record to the database. One of the users creates a
locked infotype record, and the other user unlocks - that is, activates - the data record.
ENDDA: end date.
BEGDA: start date.
SEQNR: The Sequential Number is used to make a distinction between infotype records that have the
same key and time constraint '3' (any number of valid infotype data records at any one time). Unlike the object identification, it is assigned by the system automatically.
Structure:
The Data Dictionary contains a Pnnnn structure for each infotype nnnn. The infotype structure Pnnnn corresponds to the table PAnnnn. The Pnnnn structure of the infotype is used as the field structure for the infotype entry screen (Transaction code PA30). Basic form of an infotype:
Infotypes nnnn [name c] [occurs m] [mode n] [valid from comp1 to comp2]. nnnn can be 0000 to 9999. 0000 – 0999 are HR Master Data infotypes. 1000 – 1999 are HR Planning data infotypes. 2000 – 2999 are HR time data infotypes. 3000 – 8999 are not used 9000 – 9999 are used for the custom infotypes Effect of the above syntax is It creates an internal table as below... DATA BEGIN OF c OCCURS m. INCLUDE STRUCTURE Pnnnn. DATA END OF c VALID BETWEEN comp1 AND comp2
If name option is not given in the syntax then the internal table will be created with the name p<nnnn>
If occurs clause in not given then the size of an internal table would be 10 * size of the structure pnnnn. That is in the place of „m‟ it would be 10.
If valid clause is not given then the comp1 and comp2 values will be 01/01/1800 and 31/12/9999 respectively.
Mode n this clause can only be used with the LDB‟s PCH and PNP. This addition stops this infotype being automatically filled at the GET PERNR command.
The infotype records can be processed using the infotype structure when the report is run. Processing Infotypes
Processing Single Infotype Record We can process the Single records of an infotype using the following macros. 1.RP_PROVIDE_FROM_LAST Pnnnn SPACE PN-BEGDA PN-ENDDA. This macro is used to retrieve the most recent record in the PN-BEGDA and PN-ENDDA data selection period
available in the structure Pnnnn for infotype nnnn 2. RP_PROVIDE_FROM_FIRST Pnnnn SPACE PN-BEGDA PN-ENDDA
This macro retrieves the earliest record for the given selection period. If the infotype has subtypes, then replace SPACE with the subtype so, the data is retrieved based on that subtype. If the retrieval is successful then the return code PNP-SW-FOUND will be „1‟.
Processing All Infotype Records
Syntax: PROVIDE * FROM Pnnnn BETWEEN PN-BEGDA AND PN-ENDDA. ENDPROVIDE
nnnn stands for 4-digit infotype number. The relationship between the data and the selection period is established using the PN-BEGDA and PN- ENDDA variables. Infotype List
Concepts of Clusters (Import/Export etc.), cluster directory
Definition
Each database object, for example, PCL1 or PCL2, with the type Import/Export file consists of related areas. These areas are known as clusters, for example. RX, RD. Cluster objects are dependent on the super ordinate database object. Cluster objects RX, RD, B2 can be selected for the database PCL2. If the database object has the type master data then there will be no cluster object. Import/Export files They are 4 types of files.
PCL1: Basis for HR Work area data. Contains information from time data recording.
PCL2: Contains derived information like payroll results and generated payroll schemas.
PCL3: Contains Applicant Data
PCL4: Contains change documents for HR master data and recruitment.
Importing and Exporting of data is managed with the commands IMPORT and EXPORT These commands store objects such as fields, field strings, or internal tables on the database, or read these from the database. Data is read from and written to the database using a unique key. RMAC provides two macros for importing and exporting data RP-IMP-Cn-xx and RP-EXP-Cn-xx; only these macros should be used. Export Cluster data using standard include
The EXPORT command causes one or more 'xy' KEY data objects to be written to cluster xy.
The cluster definition is integrated with the INCLUDE statement.
REPORT ZHREXPRT. TABLES: PCLn. INCLUDE: RPCnxxy0. "Cluster definition * Fill cluster KEY xy-key-field = <value>. * Fill data object .... * Export record EXPORT TABLE1 TO DATABASE PCLn (xy) ID xy-KEY. IF SY-SUBRC EQ 0. WRITE: / 'Update successful'. ENDIF.
Export Cluster data using the macro
Export data using macro RP-EXP-Cn-xy.
When data records are exported using macro, they are not written to the database but to a main memory buffer.
To save data, use the PREPARE_UPDATE routine with the USING parameter 'V'.
REPORT ZHREXPRT. *Buffer definition INCLUDE RPPPXD00. INCLUDE RPPPXM00. "Buffer management DATA: BEGIN OF COMMON PART 'BUFFER'. INCLUDE RPPPXD10. DATA: END OF COMMON PART 'BUFFER'. ... RP-EXP-Cn-xy. IF SY-SUBRC EQ 0. PERFORM PREPARE_UPDATE USING ‘V’. ENDIF.
Importing Cluster Data using standard include
The IMPORT command causes data objects with the specified key values to be read from PCLn.
If the import is successful, SY-SUBRC is 0; if not, it is 4.
REPORT RPIMPORT. TABLES: PCLn. INCLUDE RPCnxxy0. "Cluster definition * Fill cluster Key * Import record IMPORT TABLE1 FROM DATABASE PCLn (xy) ID xy-KEY. IF SY-SUBRC EQ 0. * Display data object ENDIF. Importing Cluster data using Macro
Import data using macro RP-IMP-Cn-xy.
Check return code SY-SUBRC. If 0, it is successful. If 4, error.
Need include buffer management routines RPPPXM00
Example REPORT RPIMPORT. *Buffer definition INCLUDE RPPPXD00. DATA: BEGIN OF COMMON PART 'BUFFER'. INCLUDE RPPPXD10. DATA: END OF COMMON PART 'BUFFER'. *Import data to buffer RP-IMP-Cn-xy. .... *Buffer management routines INCLUDE RPPPXM00. Cluster Authorization
Simple EXPORT/IMPORT statement does not check for cluster authorization. Use EXPORT/IMPORT via buffer, the buffer management routines check for cluster authorization. How to read the Payroll Results
Payroll results are stored in cluster Rn of PCL2 as field string and internal tables.
n - Country identifier.
Standard reports read the results from cluster Rn. Report RPCLSTRn lists all payroll results;
Report RPCEDTn0 lists the results on a payroll form.
The cluster definition of payroll results is stored in two INLCUDE reports:
include: rpc2rx09. "Definition Cluster Ru (I)
include: rpc2ruu0.”Definition Cluster Ru (II)
This first INCLUDE defines the country-independent part; the second INCLUDE defines the country-specific part (US). The cluster key is stored in the field string RX-KEY.
All the field string and internal tables stored in PCL2 are defined in the ABAP/4 dictionary. This allows you to use the same structures in different definitions and nonetheless maintain data consistency.
The structures for cluster definition comply with the name convention PCnnn
Unfortunately 'nnn' can be any set of alphanumeric characters.
*Key definition DATA: BEGIN OF RX-KEY. INCLUDE STRUCTURE PC200. DATA: END OF RX-KEY. *Payroll directory DATA: BEGIN OF RGDIR OCCURS 100. INCLUDE STRUCTURE PC261. DATA: END OF RGDIR.
How to retrieve Payroll results
To read payroll results, you need two keys: pernr and seqno
You can get SEQNO by importing the cluster directory (CD) first.
Example REPORT ZHRIMPRT. TABLES: PERNR, PCL1, PCL2. INLCUDE: rpc2cd09. "Definition cluster CD PARAMETERS: PERSON LIKE PERNR-PERNR. ... RP-INIT-BUFFER. *Import cluster Directory CD-KEY-PERNR = PERNR-PERNR. RP-IMP-C2-CU. CHECK SY-SUBRC = 0. LOOP AT RGDIR. RX-KEY-PERNR = PERSON. UNPACK RGDIR-SEQNR TO RX-KEY-SEQNO. *Import data from PCL2 RP-IMP-C2-RU. ENDLOOP.
Reading records from the Payroll directory After importing the payroll directory, which record to read is up to the programmer
Each payroll result has a status.
'P' - previous result 'A' - current (actual) result 'O' - old result
Function module CD_EVALUATION_PERIODS will restore the payroll result status for a period when that
payroll is initially run. It also will select all the relevant periods to be evaluated.
In the authorization check for persons, the system determines whether the user has the authorizations required for the organizational features of the employees selected with GET PERNR.
Recruits for which the user has no authorization are skipped and appear in a list at the end of the report.
Authorization object: 'HR: Master data'
Authorization for Data
In the authorization check for data, the system determines whether the user is authorized to read the infotypes specified in the report.
If the authorization for a particular infotype is missing, the evaluation is terminated and an error message is displayed.
Deactivating the Authorization Check
In certain reports, it may be useful to deactivate the authorization check in order to improve performance. (E.g. when running payroll)
You can store this information in the object 'HR: Reporting'.
Concepts of Macros (Import/Export etc.)
Macros: Introduction
Programs that process the cluster data (for example, RX) do not access the cluster independently. The data is accessed using a defined interface created with macros. Macro contains some part of source code, which it will be useful for number of applications. Macro is module, which is stored Naming Conventions of Macro:
RP-aaa-bb-cc
aaa is the type of Macro. It takes two values o IMP Import Macro o EXP Export Macro
bb is the Database table where the data is saved: o C1 Database object PCL1 o C2 Database object PCL2 o C3 Database object PCL3 o C4 Database object PCL4
Cc is the cluster, it may take o RX Cluster object RX o RD Cluster object RD o B2 Cluster object B2 and so on.
Defining and Calling the Macros Defining: There are two options for defining the Macros
Macros are defined using the ABAP Commands DEFINE…. END-OF-DEFINITION. A macro can be used within a report or within include. If a macro is used in a report, and the macro is defined in include with the DEFINE command, include must be integrated.
Macros can also be defined as RMAC macros. The source code of these modules is stored in the function section of the control table TRMAC. The coding is grouped under a specific name in the table key.
According to conventions, the first two letters of the name must stand for the application. The rest of the name is freely definable. Difference between the two methods is:
If a macro is changed, each report using this macro is automatically regenerated when it is executed.
When you change a RMAC macro in the table TRMAC, the reports that use this macro are not regenerated automatically. You must regenerate them manually.
Standard HR Macros
The macro RP-PROVIDE-FROM-FRST retrieves the first (start) data record, which is valid in the data selection period.
The macro RP-PROVIDE-FROM-LAST retrieves the last (latest) data record, which is valid in the data selection period.
The macro RP-READ-INFOTYPE retrieves the data record(s), which is valid in the data selection period.
How to check whether the macro operation is successful or not
For every macro, whether the operation was successful or not will be checked with PNP-SW-FOUND. If PNP-SW-FOUND = 1, then the operation is successful.
Where exactly the Macrocode is stored
The program code pertaining to this macro is stored in the control table RMAC Guidelines for how and when to use the Standard Macros
1. RP_PROVIDE_FROM_FRST
Use macro RP_PROVIDE_FROM_FRST in programs for the logical databases PNP and PAP where the first data record for a period (can be a subtype) is read from an infotype table. The infotype table has been filled earlier (for example, with GET PERNR or RP_READ_INFOTYPE). This macro is only helpful if the infotype has time constraint 1 or 2. Prerequisites
The validity begin date of the time period must be before or the same as the validity end date.
Validity start and end dates are correct (preferably of the type DATE).
The infotype table is sorted in ascending order. Otherwise, you would receive the first fitting table entry that might not necessarily correspond to the first time entry.
Features
The first entry for a specified period is placed in the table header entry from an internal infotype table. Parameters
RP_PROVIDE_FROM_FRST inftytab subty beg end IN:
1. Name of the internal table 2. Subtype required or SPACE if no subtype is being specified 3. Validity start date of the time interval 4. Validity end date of the time interval
OUT:
1. PNP-SW-FOUND: has the value 0 if there is no matching entry in the infotype table in the given time period. Otherwise it has the value 1.
2. The matching table header entry if PNP-SW-FOUND = 1 orthe initial table header entry if PNP-SW-FOUND = 0
Example (RP_PROVIDE_FROM_FRST inftytab subty beg end) RP_PROVIDE_FROM_FIRST P0021 '1' PN-BEGDA PN-ENDDA. IF PNP-SW-FOUND EQ '1'. ... ENDIF. or RP_PROVIDE_FROM_FRST P0001 SPACE PN-BEGDA PN-ENDDA. IF PNP-SW-FOUND EQ '0'. WRITE: / 'Error: Org. assignment is missing' REJECT. ENDIF.
2. RP_PROVIDE_FROM_LAST
You use macro RP_PROVIDE_FROM_LAST in programs for the logical databases PNP and PAP where the last data record for a period (can be a subtype) is read from an infotype table. The infotype table has been filled earlier (for example, with GET PERNR or RP_READ_INFOTYPE). This macro is only helpful if the infotype (or subtype) has time constraint 1 or 2. Prerequisites
The validity begin date of the time period must be before or the same as the validity end date.
Validity start and end dates are correct (preferably of the type DATE).
The infotype table is sorted in ascending order. Otherwise, you would receive the last fitting table entry that might not necessarily correspond to the last time entry.
Features
The macro RP_PROVIDE_FROM_LAST makes sure that the last entry for a specified period is placed in the table header entry of the report output list. Parameters
RP_PROVIDE_FROM_LAST inftytab subty beg end
IN:
1. Name of the internal table 2. Subtype required or SPACE if no subtype is being specified 3. Validity begin date of the time interval 4. Validity end date of the time interval
OUT:
1. PNP-SW-FOUND: has the value 0 if there is no matching entry in the infotype table in the given time period. Otherwise it has the value 1.
2. The matching table header entry if PNP-SW-FOUND = 1 or the cleared table header entry if PNP-SW-FOUND = 0
Example: RP_PROVIDE_FROM_LAST P0021 '1' PN-BEGDA PN-ENDDA. IF PNP-SW-FOUND EQ '1'. ... ENDIF. OR RP_PROVIDE_FROM_LAST P0001 SPACE PN-BEGDA PN-ENDDA. IF PNP-SW-FOUND EQ '0'. WRITE: / 'Error: Org. assignment is missing'. REJECT. ENDIF.
3. RP_READ_INFOTYPE
You can use the macro in all programs at any point. You can also use it in function modules. In database PNP, an
infotype is usually read with GET PERNR. Using macro P_READ_INFOTYPE is an exception. You can also use the function module HR_READ_INFOTYPE. For information on how to use the function module, see the documentation on Function Modules. Prerequisites
The validity begin date of the time period must be before or the same as the validity end date.
Validity begin and end are correct date specifications (preferably of the type DATE).
The infotype table must match the infotype number.
The program using the macro must contain the include DBPNPMAC.
Features
The macro RP_READ_INFOTYPE makes sure that all data records for a person for the specified period are placed in an internal infotype table. Parameters
RP_READ_INFOTYPE pernr infty inftytab beg end IN:
1. Personnel number of the person requested 2. Infotype number of the required infotype 3. Name of the internal infotype table 4. Validity start date of the time interval 5. Validity end date of the time interval
OUT:
1. PNP-SW-FOUND = 0, if there is no matching record in the dataset PNP-SW-FOUND = 1, if there is no matching record in the dataset
2. PNP-SW-AUTH-SKIPPED-RECORD = 0, if the HR authorization check has not retained any records due to incorrect authorizations.
PNP-SW-AUTH-SKIPPED-RECORD = 1 , if the HR authorization check has retained at least one record due to lack of authorization
3. Internal infotype table, containing all matching records for which the user is authorized (this table can also be empty).
Example
(RP_READ_INFOTYPE pernr infty inftytab beg end) INFOTYPES: 0001. RP-LOWDATE-HIGHDATE. DATA: PERNR LIKE P0001-PERNR. DATA: BEGDA LIKE P0001-BEGDA, ENDDA LIKE P0001-ENDDA. PERNR = '12345678'. BEGDA = LOW-DATE + 15 ENDDA = HIGH-DATE - 5. RP-READ-INFOTYPE PERNR 0001 P0001 BEGDA ENDDA. IF PNP-SW-AUT-SKIPPED-RECORD EQ '1'. WRITE: / 'Insufficient authorization'. STOP. ENDIF. IF PNP-SW-FOUND EQ '0'. WRITE: / 'Infotype 0001 missing'. STOP.
ENDIF.
Retrieval of data using LDBs (PNP/PAP/APP/PCH) without LDBs. Logical database
A logical database is a special ABAP/4 program which combines the contents of certain database tables. Using logical databases facilitates the process of reading database tables. HR Logical Database is PNP
Main Functions of the logical database PNP:
Standard Selection screen
Data Retrieval
Authorization check
To use logical database PNP in your program, specify in your program attributes. Standard Selection Screen
Date selection
Date selection delimits the time period for which data is evaluated. GET PERNR retrieves all records of the relevant infotypes from the database. When you enter a date selection period, the PROVIDE loop retrieves the infotype records whose validity period overlaps with at least one day of this period.
Person selection
Person selection is the 'true' selection of choosing a group of employees for whom the report is to run.
Sorting Data
The standard sort sequence lists personnel numbers in ascending order.
SORT function allows you to sort the report data otherwise. All the sorting fields are from infotype 0001.
Report Class
You can suppress input fields, which are not used on the selection screen by assigning a report class to your program.
If SAP standard delivered report classes do not satisfy your requirements, you can create your own report class through the IMG.
Data Retrieval from LDB
1. Create data structures for infotypes. INFOTYPES: 0001, "ORG ASSIGNMENT 0002, "PERSONAL DATA 0008. "BASIC PAY 2. Fill data structures with the infotype records. Start-of-selection.
GET PERNR. End-0f-selection.
Read Master Data
Infotype structures (after GET PERNR) are internal tables loaded with data.
The infotype records (selected within the period) are processed sequentially by the PROVIDE - ENDPROVIDE loop.
GET PERNR. PROVIDE * FROM Pnnnn BETWEEN PN/BEGDA AND PN/ENDDA If Pnnnn-XXXX = ' '. write:/ Pnnnn-XXXX. Endif. ENDPROVIDE.
Period-Related Data
All infotype records are time stamped. IT0006 (Address infotype) 01/01/1990 12/31/9999 present
Which record to be read depends on the date selection period specified on the selection screen.PN/BEGDA PN/ENDDA.
Current Data
IT0006 Address - 01/01/1990 12/31/9999 present
RP-PROVIDE-FROM-LAST retrieves the record, which is valid in the data selection period.
For example, pn/begda = '19990931' pn/endda = '99991231' IT0006 subtype 1 is resident address RP-PROVIDE-FROM-LAST P0006 1 PN/BEGDA PN/ENDDA.
Overview of PA/PD/& Integration between PA & PD
This explains how to use the ABAP programs, which set integration between PA and PD/OM. They are mainly used after data conversion, bulk updates or to correct errors caused by other programs. Each program is explained in detail so you can decide which ones you need to run. To set up/fix full integration between PA and PD, they should be run in this sequence: 1. RHINTE00 – Transfer PA records into PD positions –batch 2. RHINTE20 – Create OM objects in PA tables – Online 3. RHINTE30 – Bulk update of infotype 0001 4. RHINTECHECK – Program to check PA to PD 5. RHCHECKV - Checks all inverse relationships Overview
It is important to realize that in PA, there are tables that contain objects from OM, i.e. for those items displayed on infotype 0001 Organizational Assignment. Sometimes the tables can get „out of step‟ with those in PD – table
HRP1000. The tables are: T513, T513S Object type C (Job) T528B, T528T Object types S (Position) and A (Work center) T527X Object type O (Organizational unit) RHINTE00
This loops through all employees in PA by looking at positions on infotype 0001. It checks the corresponding person to position relationship exists in PD (A008), if not it is created. RHINTE10
Generally, the program RHINTE20 will be used instead of this one. This program loops through the PD table HRP1000. For each job, position, work centre and organization unit, corresponding entry is created in the PA tables, which are shown above. Run this with evaluation path o_s_p, which runs through Org units, jobs and positions or find a suitable alternative if you wish to update work centers also. The main difference with this program as opposed to RHINTE20 is that this one has the option to delete items from the PA tables, which no longer exist in PD. RHINTE20
This program loops through the PD table HRP1000. For each job, position, work centre and organization unit, corresponding entry is created in the PA tables, which are shown above. Run this with evaluation path o_s_p, which runs through Org units, jobs and positions or find a suitable alternative if you wish to update work centers also. An example output will show:
Expand the tree items to display a list of objects that can be created: RHINTECHECK
When the above programs have been run, use this check program, which looks through all employees and reports any inconsistencies found between PA and PD.
Tick each item that you wish to be created, or click on the text and click „select
subtree‟ to select them all then click to perform multiple updates. This program can prove to be „problematic‟. If difficulties arise with it, try using RHINTE10 instead. RHINTE30
This will create an infotype 0001 record with correct entries for org unit, job, position and work centre by looking through the organization structure. It creates a batch job, which must be run via SM35. More details to follow. RHCHECKV
This will check inverse relationships and create missing ones.
All product names are trademarks of their respective companies. AbapMania.com is in not affiliated with SAP AG. SAP, SAP R/3, ABAP, ALE, ALV, BAPI, BADI, CATT, IDOC, LSMW, ABAP OOP, User-Exits, SAP Query, Smartforms, Sapscripts, ABAP
Workflow, and any other SAP trademarks are registered trademarks of SAP AG in Germany. Every effort is made to ensure content integrity. Use information on this site at your own risk.
RHINTE00 SAP Report - Transfer Organizational Assignment (PA ->
PD)
RHINTE00 is a standard ABAP report available within your SAP system (depending on your
version and release level). Below is the standard documentation available for this report and
a few details of other objects it interacts with such as tables, function modules, includes etc.
If you would like to see the full code listing simply enter the object name( RHINTE00 ) into
the relevant SAP transaction such as SE38 or SE80
Within the comments section below there is also an opportunity for anyone to be able add
useful hints and information specific to this SAP object. This means that you and other users will be able to find these details quickly by simply searching on the object name.
SAP Documentation for program RHINTE00
TRANSACTION CODE: Z110
DESCRIPTION
This report reads the infotype records of the Organizational Assignment infotype (0001) created in PA.
The system then checks whether all or some of these records exist in PD.
If all these records exist in PD, that is for the entire validity period of the PA record, a log is output. The log indicates
that no changes are required in PD and no batch input session is created.
If changes are required, the system creates the following records in PD according to the Create Object(s) and Create
Relationship(s) parameters.
Objects (infotype 1000):
Work center
Job
Organizational unit
Position
Relationships (infotype 1001) between the following objects:
RHINTE10 SAP Report - Prepare Integration (OM with PA)
RHINTE10 is a standard ABAP report available within your SAP system (depending on your
version and release level). Below is the standard documentation available for this report and
a few details of other objects it interacts with such as tables, function modules, includes etc.
If you would like to see the full code listing simply enter the object name( RHINTE10 ) into
the relevant SAP transaction such as SE38 or SE80
Within the comments section below there is also an opportunity for anyone to be able add
useful hints and information specific to this SAP object. This means that you and other users will be able to find these details quickly by simply searching on the object name.
SAP Documentation for program RHINTE10
TRANSACTION CODE: Z111
DESCRIPTION
This program allows you to create object types in Personnel Administration (HR-PA) which have already been set up
in Personnel Planning and Development (HR-PD) and which are needed for integration.
The following object types are relevant to integration:
PD,,,,PA
Work center,,(object type A),,Tables T528B, T528T
Job,,(Object type C),,Tables T513, T513S
Position,,(Object type S),,Tables T528B, T528T
Organizational unit,,(Object type O),,Table T527X
Only objects which exist in status 1 (active) in the integration plan version are included (see in PD Customizing
under Set active plan version, entry PLOGI PLOGI).
The integration object types are required for infotype 0001 "Organizational Assignment".
A program run can take place for one or all object types.
Parameter
Creating Objects
Controls whether objects should be created in the tables for Personnel Administration. These objects are created,
that is transferred to the existing objects in Personnel Planning and Development (HR-PD).
Deleting Non-Existent Objects
Controls whether objects in Personnel Administration tables (HR-PA) that only exist in these tables and not in
Personnel Planning and Development ( HR-PD) should be deleted.
Only Objects with Original in OM
Restricts the objects to be deleted to objects whose original is maintained in Organizational Management. In relation
to the "Delete non-existent objects" parameter, only objects of the PA tables whose original was previously created in
OM are taken into account. Objects which were created with their original in OM from the beginning and therefore
have never existed in OM are not deleted.
Test
This parameter controls whether the program is to be run in test mode without table changes or in update mode with
Below is an example ABAP program which will populate a simple internal table(it_ekpo) with
data and display it using the basic ALV grid functionality(including column total). The
example details the main sections of coding required to implement the ALV grid functionality:
Data declaration
Data retrieval
Build fieldcatalog
Build layout setup
*&-------------------------------------------------------------* *& Report ZDEMO_ALVGRID * *& * *&-------------------------------------------------------------* *& * *& Example of a simple ALV Grid Report * *& ................................... * *& * *& The basic requirement for this demo is to display a number * *& of fields from the EKKO table. * *&-------------------------------------------------------------* REPORT zdemo_alvgrid . TABLES: ekko. type-pools: slis. "ALV Declarations *Data Declaration *---------------- TYPES: BEGIN OF t_ekko, ebeln TYPE ekpo-ebeln, ebelp TYPE ekpo-ebelp, statu TYPE ekpo-statu, aedat TYPE ekpo-aedat, matnr TYPE ekpo-matnr, menge TYPE ekpo-menge, meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr, peinh TYPE ekpo-peinh, END OF t_ekko. DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0, wa_ekko TYPE t_ekko. *ALV data declarations data: fieldcatalog type slis_t_fieldcat_alv with header line, gd_tab_group type slis_t_sp_group_alv, gd_layout type slis_layout_alv, gd_repid like sy-repid. ************************************************************************ *Start-of-selection. START-OF-SELECTION. perform data_retrieval. perform build_fieldcatalog. perform build_layout. perform display_alv_report. *&---------------------------------------------------------------------* *& Form BUILD_FIELDCATALOG *&---------------------------------------------------------------------* * Build Fieldcatalog for ALV Report *----------------------------------------------------------------------* form build_fieldcatalog. * There are a number of ways to create a fieldcat. * For the purpose of this example i will build the fieldcatalog manualy * by populating the internal table fields individually and then * appending the rows. This method can be the most time consuming but can * also allow you more control of the final product. * Beware though, you need to ensure that all fields required are * populated. When using some of functionality available via ALV, such as * total. You may need to provide more information than if you were * simply displaying the result * I.e. Field type may be required in-order for * the 'TOTAL' function to work. fieldcatalog-fieldname = 'EBELN'. fieldcatalog-seltext_m = 'Purchase Order'. fieldcatalog-col_pos = 0. fieldcatalog-outputlen = 10. fieldcatalog-emphasize = 'X'. fieldcatalog-key = 'X'. * fieldcatalog-do_sum = 'X'. * fieldcatalog-no_zero = 'X'. append fieldcatalog to fieldcatalog. clear fieldcatalog.
Always enter both number and unit. This is one of those odd messages. The wage type wants just an amount and you have entered either:
a number and no amount, or;
a number and an amount,
a unit and an amount
Enter an amount with no number or unit.
Do not enter units for wage type xxxx Clear these fields and enter an amount instead.
Please enter an amount Both number and amount are blank. Enter a value as appropriate.
Bank Details
Retroactive entries
allowed only up to the xx
yyyy
Banking details cannot be created or changed for pay periods that have already had
the EFT transfer run. Change the "From" date to the start of the next pay period.
Personnel Event - Hire or Org/Pay Change
Number range nn is internal; please do not enter a personnel
number
Personnel numbers are assigned
automatically from an internal range. Delete
the entry in the Personnel Number field - the
system will provide the number.
No entry in table T530 for xx You need to enter a valid "Reason for
Action"
Person and Position have different Personnel Areas This happens when hiring several employees in the same session. The system defaults to the Personnel Area of the person you hired last hired in the session - What to do.
Delete the default entries for the Personnel Area, Employee Group and Employee Subgroup
Click "Enter" - This will default in the correct Personnel Area, Employee Group and Employee Subgroup as per the Position
If correct select Save
A008 relationships of S 500xxxx exceed working hours by nnn.nn% This position may have more than one
incumbent. It is appropriate to have more
than one person in a position in the
following circumstances; For a handover
period two employees occupy the position.
The position is designed to have multiple
occupants - eg. Contractors may be set up
in one position.
Absence & Attendance Entry
First day is a day of Warns that the first day of the absence or
attendance period is a non-working day for this
employee.
Last day is a day off Warns that the last day of the absence or
attendance period is a non-working day for this
employee.
All days in the period are days off Alerts you that every day of the absence or
attendance period is a non-working day for this
employee.
No validity interval for key 1 08 05 This occurs when you try and enter an absence
quota for an employee whose absence quota
does not exist in the validity period as a default
value. The table is T559V.
This will cause leave entitlement to become negative Check leave balance in Leave View if required
Confirm with supervisor that negative leave is approved
Enter the absence ensuring that you select the appropriate absence subtype for negative leave
Please enter indicator OR absence/attendance type When using the push button Abs./attendances in
Calendar View for bringing up the data entry box
for Absence/Attendance, an entry in one or other
of the columns marked 'AC' and 'STy.' is required
- not both.
No data stored for leave entitlement for the selected period No data is currently held on infotype 0005.
Create the record.
No entry in table T551C for key 0GR071998081 10000000000 Check to make sure you have assigned the
Employee not selected during payroll run Check that you have chosen the
correct payroll area on the selection
screen. Check that the employee is
active in the payroll period that you
have chosen.
No entry in table T529Q for period modifier 03 for time 01.04.2001-06-20 This error message is misleading as
this table does not exist. It actually
points to table T549Q which in turn
points to table T510W. This table
holds the link between the payscale
type and area and the period
parameter. The permissible entries
may point to a weekly period
parameter - which is fine for weekly
employees. Get the monthly
combinations to point to a monthly
period parameter eg 51 - GB Monthly.
Deletion forbidden Results has been posted with posting run <nnnnnnnn> An error occurs when attempting to delete employee's records whose payroll results have been posted to finance.
Using transaction PU03, ensure the Accounted To, Earliest MD change and Recal.follow-up prog dates have been removed.
Using transaction PU00, select all infotypes and delete the employee.
T100S & T100C - hold the information relating to the SAP standard error messages. You can change the error messages from an E to a W. When creating or changing a message in T100C make sure that you do not fill in a user name - leave the field blank - otherwise it will only be specific to that particular user.
General Payroll Error Messages
NCALE “P” eriod mark missing on dd.mm.yyyy
Run Transaction PC00_M08_CONV
As part of GBSXP phase II in the UK, program Z_FILL_NCALE has been replaced with standard programRPLABSG0_SXP_OXP_CONV (transaction code is PC00_M08_CONV).
This needs to be run as part of the absence Data Take on process to fill tables AVERAGE and NCALE.
Error message in GCRTO of Gross to Net stating Multiple Employment: Court Order amounts from OTHER contracts. Other contracts do not and have never had court order payments. Error due to multiple employments being linked but not overlapping in a time period, therefore, they are not true multiple contracts, rather separate periods of employment (i.e. one contract finished before the next one starts). IT0121 and IT031 have been deleted from the employments and employees rerun through payroll.
In addition, where a court order is maintained, this is copied across all contracts, even if those contracts have been terminated. Had to set the run up to date as the end date of the previous period and run GLK0. Then clear run up to date and run through the primary contract.
Multiple employee has a terminated employment that needs to be run through payroll. Enter the last day of the period being run in the „run payroll up to‟ field in IT0003.
Also check ME consistency report. For the UK, all contracts need IT0065 and IT0069 to process through payroll.
The official fix for this error is contained in HRSP 40/41 for version 4.7.
Company code xxxx is not assigned to an FM area
This error is due to a configuration setting in Financial Accounting.
Table T549s should not be changed after payroll run (payroll area)
If the multiple employment solution is used, changes to the table with pay dates (T549S) are no longer allowed after the payroll for the period has been run. Make sure that table T549S is changed back to the initial configuration (which is reflected in the payroll results). This can occur when you have multiple employments across different payroll areas which SAP does not support. It can also occur when the employee has results from one payroll area and then changed payroll area over the same period – results across different payrolls for the same period are not permitted.
Wage type /010 must be in table IT to perform offsetting on 02.08.2004
Failure in processing of GBSXP. SAP cannot derive a daily rate for this employee to calculate SSP/OSP entitlement. Check IT0008 record. Likelihood there is no basic pay to derive a daily rate from or zero hours in IT0008.
Payroll Period for Contract nnnnnnnn Is Not Defined (01.08.2006 - 31.08.2006)
Highlighted employee is in a payroll area not set for paying. This can occur in a multiple employment scenario where one contract is in a paying payroll area and the other is in a non paying payroll area. SAP best practice says all linked contracts should be in the same payroll area.
Retroactive accounting date set by system, 26.07.2006, is before pers. EARLIEST RETRO. 01.08.2006 or
Employee has changed payroll areas before the end of a current period. For example, employee has moved from weekly paid to monthly paid and has moved out of the weekly paid payroll area before the end of a weekly period. Check Payroll area in IT0001 – may need to delete results and rerun.
Retroactive accounting date set by system, 01.04.2004, is before pers. EARLIEST RETRO. 01.04.2005
This employees earliest MD change is before go-live the person will be overpaid by up to a full year Unless payroll results are deleted.
wxyy name of wage type Termination in operation ERROR nnnnnnnn G0103***** ERROR Basic entry in IT : A Wage type APC1C2C3ABKoReBTAwvTvn One amount/one number Amo 3 wxyz name of WT wxyz 15. Current entry in OT:
Error in processing through PCR G010 (or customer copy of this). Happens where no value is maintained in processing class 01 against the wage type which is failing.
RGDIR import failed
Multiple employments linked across different payroll areas.
This period's taxable pay takes total year to date into a negative situation (Perhaps due to backdated changes in a previous tax year
Employee has deductions of some kind but no earnings or earnings that are less than deductions. Could be IT0014/IT0015 deductions or a cash AVC/loan.
Termination in operation ERROR nnnnnnnn G030****** ERROR # = = = = = = Basic entry in IT : A Wage type APC1C2C3ABKoReBTAwvTvn One amount/one number Amount * /134 Co.car: pa 99.00- Processing class missing on wage type /134.
Error during indirect calculation: Infotype 0014 subtype nnnn
Error message: “IndVal of wage type nnnn: No entry in table T510 for key '08CLC137005' on 01.04.2006”
Wage type nnnn is indirectly valuated but the value in infotype 0014 for this wage type is reading zero, or
The person concerned should not be receiving the allowance.
Error during indirect calculation: Infotype 0008 subtype 0 IndVal of wage type 1005: No entry in table T510 for key '08CMC11ADLRNTUT05' on 01.04.2005
Wage type 1005 in IT0008 has a value of zero.
Payroll period for contract XXXXXXXX is not defined
Employee is in a payroll area not defined for payroll processing.
/121 Taxable pay goes into a negative situation for an employee on the line:
PIT GGDN NOAB Interpret NI retro changes
Error in processing of GB Gross to Net in PCR GGDN – Interpret NI retro changes. Employee is a late leaver so it is trying to bring forward a negative taxable pay from a previous period. These situations are dealt with through schemaGRET.
If the employee is a multiple employment you will get a further error message. You can not run GRET (9RET) for multiple employments where one contract is still active. You need to create a wage type for a positive amount for the same value as the negative amount in the rejection and run the employee through the normal schema (9000). You then need to deduct this same amount from (one of) the remaining active employment(s). This will ensure the employee balances.
'Not the most recent period paid to this person'
This error occurs when payroll results for a later period exist for an employee. The solution is to remove the date in the “accounted to field” on IT0003 and run the schema GRET (or your customer equivalent).
Negative Payments ('NP' T7PBSDEC_WTGRP) don't include wage type XXXX
Failure in function XDEC due to missing wage type in wage type group NP. Wage type needs adding in to wage type group NP through transaction pu96.
Once having entered the transaction code go and find the relevant wage type and select it. You will notice that the line is now highlighted – as are all the other wage types which are relevant for the group NP. Save and transport through to PRD.
Payroll Go-Live date 01.04.2005 must equal period start date 28.03.2005 (Feature GBPLG)
Feature GBPGL is not set up properly for go live period. Feature GBPLG needs maintaining for each payroll area you are going live with. Date in feature should be the start date of the first period of go live.
DTO wage type TOFM not stored in IT0015 for first live payroll (27.03.2005 - 02.04.2005)
Employee has a maternity absence which spans the go live period. Both wage types TOFM and TOOM need entering with a date of the first date of the first period being run.
Same message for Adoption and Paternity absences but different wage types. Only required for go live.
ME SMP: Inconsistent SxP record between xx.xx.xxxx and xx.xx.xxxx (infotype 0088)
IT0088 should be copied across all contracts for multiple employment for consistency using a dynamic action which is part of the ME solution.
ME SMP: Inconsistent absence between xx.xx.xxxx and xx.xx.xxxx ME SMP: Inconsistent SxP record between xx.xx.xxxx and xx.xx.xxxx (infotype 0088)
An IT2001 SMP‟able absence has been extended without IT0088 being extended. Extended the IT0088 record in line with the 2001 entry and re-run through payroll.
SMP Error; Employee has no valid MATB1 form between 29.08.2006 and 28.08.2007 (IT0088)
Rejection in G010 (or customer copy) when processing AWE override wage types AWEM, AWEA, AWEP, AWES through IT0014. This is because IT0014 is processed earlier in the schema than IT0015.
These wage types are required in IT0014 for DTO purposes.
Ensure processing class 01 = 0 and processing class 03 = 0 for these wage types.
(see SAP note 825164)
Wage type incorrectly reduced. A deduction wage type was not completely reduced by the amount in table DDNTK Wage type xxxx. Please check whether the wage type is still in table IT at the time of the PRDNT function (processing class 20).
Should be fixed by SAP note 794021. If the application of this note does not fix the error, it is possible that the wage type in error is missing a value in processing class 41. This value should be set to „3‟. Also check the priorities of deductions table V_T51P6.
Late Leaver processing not possible. Employment xxxxxxxx is still active on dd.mm.yyyy
Multiple Employment employee has a contract which is a late leaver. SAP does not support running schema GRET for a late leaver contract for multiple employment. If you process GRET you get the above error. SAP recommend that in this scenario, you maintain a value in a customer wage type which equates to a positive amount for the failure on the negative taxable amount (i.e. failure on negative taxable pay of –115.15; create a wage type for the amount of +115.05) on the late leaver contract and process through contract G000 (or copy of G000). Use the same wage type to deduct this amount from the active contract(s) and run through G000 (or copy of G000).
Enter rate / GBP rate type M for 01.04.2005 in the system settings
Wage type in IT0014 or IT0015 has been entered without a currency. Check config of wage type.
Late-leaver period; no payment made in error correction permitted
IT0793 has been entered for an employee who is a late leaver. Cannot use IT0793 to adjust NI refund for a late leaver – not supported as part of the NIPE functionality.
Wage type /011 must be in table IT to perform offsetting on 13.11.2005
This is caused either by a claims based person who has had IT0088 and 2001 copied from another employment and has had no claims or the person has a 2001 sickness copied from another employment and has no IT0008 – delete IT0088 and the corresponding 2001 records from the claims based record or create the missing IT0008.
Employee has no Date Specification in Infotype 0041 for Date Type 01
Add the correct date for the date type specified in the above message.
Division by zero not performed Calculation rule xyz
Check that the wage type has been input correctly, in the above case an amount has been used instead of a
Check absences on IT2001 - Absences that may only be unpaid for a full day have been entered as a half day.
Only certain absence types are allowed to be @ half pay.
Payroll Error Messages - NCALE
When running the NCALE fix with transaction PC00_M08_CONV you get a blank screen (i.e. no data in the list) you will need to check the errors by clicking on the “yellow lightning bolt” icon.
DTO check error: infotype 0014 contains no entry for AWEM (06.11.2005 - 17.12.2005)
Create the necessary AWEx entry mentioned in the error on infotype 0014 and delete/lock the AWEx entry on infotype 0015.
Also check and extend IT0088 if necessary.
SSP Error; Table PERIOD HISTORY contains no entries for absence 13.11.2005 - 24.12.2005
Re-process the employee through payroll after checking that the Master Data Change Date (IT0003-RRDAT) has been updated to re-process this date. (13.11.2005)
Costs table is empty for period 200601, run in period 200605
Costs table in XDEC has not been filled for a previous period.
Run transaction SA38 in the program command and enter the program as RPUDECG0PBS_FILL_COSTS for a single employment and RPUDECG0PBS_FILL_COSTS_ME for multiple employments
Enter in periods to be updated and employment numbers as well as appropriate dates to start dates for conversion.
Inconsistency exists between table RT and COSTS for wage type nnnn
Failure in function XDEC on a pension wage type. Pension record in IT0071 changed relating to a period for which costs have already been apportioned in table COSTS. Ie employee has results in a period, which has then been exited. Backdated pension changes causing a retro calculation, which cannot reconcile table RT with table COSTS.
There is a cost distrib.of 50.00% without company code from 01.09.2004 to 30.09.2004
Employee is assigned to 2 positions simultaneously, one of which does not have a cost centre and/or company code associated with it, therefore, costs can not be distributed across all cost centres.
Infotype 0007 does not exist or is incomplete for 01.08.2006
Where an employee with linked multiple employments exists but one or more of those other linked employments does not have a defined work schedule. Go and create the infotype 0007 (planned working time) for the relevant employment.
4 Input Processing U / 000 Average Weekly Earnings calculation for personnel number nnnnnnnn U Message (000) (language EN) not found
Data issue due to linked employments across different payroll areas with different period modifiers. This situation is not allowed in SAP as it will cause inconsistent payroll results.
Jump from DAYPR to detailed log. Incorrect generation of wage types
Error where no entry in counting class for Daily Work schedule in T551C. To see the error, check time processing log inRPCALCG0 and double click „Jump to DAYPR to detailed log‟. This will take you to the error stored in Time Evaluation.
Wage type /010 must be in table IT to perform offsetting on 06.04.2005 SSP QDP; No qualifying days 24.04.2005 - 30.04.2005. QDP defaulted to Wednesday
SSP QDP; No qualifying days 24.04.2005 - 30.04.2005. QDP defaulted to Wednesday SSP QDP; No qualifying days 24.04.2005 - 30.04.2005. QDP defaulted to Wednesday SSP QDP; No qualifying days 24.04.2005 - 30.04.2005. QDP defaulted to Wednesday SSP QDP; No qualifying days 24.04.2005 - 30.04.2005. QDP defaulted to Wednesday SSP QDP; No qualifying days 24.04.2005 - 30.04.2005. QDP defaulted to Wednesday SSP QDP; No qualifying days 24.04.2005 - 30.04.2005. QDP defaulted to Wednesday SSP QDP; No qualifying days 17.04.2005 - 23.04.2005. QDP defaulted to Wednesday SSP QDP; No qualifying days 17.04.2005 - 23.04.2005. QDP defaulted to Wednesday SSP QDP; No qualifying days 17.04.2005 - 23.04.2005. QDP defaulted to Wednesday SSP QDP; No qualifying days 17.04.2005 - 23.04.2005. QDP defaulted to Wednesday
Employee has no IT0007 record or a IT0007 record with no working days. SAP is trying to calculate a daily rate for SSPbut employee is not scheduled to work on the days where an absence is recorded.
Wage types /011, /012 and /013 will be issued for the same reason but Maternity, Paternity and Adoption absences.
Calculate first non-primary contract nnnnnnnn for primary contract nnnnnnnn
You will see an error message in the payroll log along the lines of “calculate first non-primary contract nnnnnnnn for primary contract nnnnnnnn”. In essence you have tried to process the primary employment first – without having any results for one of the secondary employments. All non-primary contracts need processing before the linked primary contract.
Multiple employment employee without a primary employment (dd.mm.yyyy – dd.mm.yyyy)
The employee number missing from field P0121-RFPN4. This can occur where a primary contract record is removed/deleted or changed after the payroll has initially calculated results for the employee. When the primary employment is deleted, SAP has removed all reference to the employee number including the entry from field RFPN4. A new primary employment needs to be assigned.
Change the control record back to a previous period, delete the earliest dates in IT0003 and then set the control record back and reprocess the payroll.
Multiple Employment employee with an inactive primary employment (dd.mm.yyyy -
• An employment that has left is assigned as the primary; • Or, this employment number is maintained in IT0121 after their leaving date. Ensure that when an employment leaves, IT0121 is delimited for this employment and the newly created IT0121 does not contain this number. All linked employments are rejected from Payroll in this scenario; • Or, IT0121 record is valid from a start date after the primary employment left Where all contracts are terminated, ensure that one terminated primary contract remains with an end date of 31.12.9999 in IT0121. Any date less than 31.12.9999 will cause an error in payroll.
Payroll constant ELGWK not found on 00.00.0000 in T511K (country grouping 08)
Inconsistency between IT0088 on Multiple employment contracts
No multiple employment NI calculation if late leaver and late starter
If an employee holds more than one contract NI calculation is restricted to cases in which the individual contracts will be not a late starter and a late leaver at the same time. If this occurs (as in the present case) master data has to be adjusted to prevent the occurence of a late starter and late leaver at the same time. Check IT0001 to ensure the start and end dates do not correspond to late starter and late leaver period.
ME transfer error: Total Gross mismatch (Cost NI Payment 7748)
Run program RPUDECG0PBS_FILL_COSTS_ME via transaction SE38, This will fill the cost tables and solve the XDEC error.
According to control record for PArea TA, payroll is not completed
Payroll period for which you are trying to post has not been exited. Period needs to be exited through PA03.
/565 Carry-over for subs.month
IT0009 bank details are missing – update bank details and re-run
SAPDBPNPCE SAP Report - PNPCE Logical Database: Database Program
SAPDBPNPCE is a standard ABAP report available within your SAP system (depending on
your version and release level). Below is the standard documentation available for this
report and a few details of other objects it interacts with such as tables, function modules,
includes etc. If you would like to see the full code listing simply enter the object name(
SAPDBPNPCE ) into the relevant SAP transaction such as SE38or SE80
Within the comments section below there is also an opportunity for anyone to be able add
useful hints and information specific to this SAP object. This means that you and other users will be able to find these details quickly by simply searching on the object name.