Cluster tables in HR
Database Tables in HR
- Personnel Administration (PA) - master and time data infotype tables (transparent tables). PAnnnn: e.g. PA0001 for infotype 0001
- Personnel Development (PD) - Org Unit, Job, Position, etc. (transparent tables). HRPnnnn: e.g. HRP1000 for infotype 1000
- Time/Travel expense/Payroll/Applicant Tracking data/HR work areas/Documents (cluster PCLn: e.g. PCL2 for time/payroll results.
Cluster Table
- Cluster tables combine the data from several tables with identical (or almost identical) keys into one physical record on the database
- Data is written to a database in compressed form
- Retrieval of data is very fast if the primary key is known.
- Cluster tables are defined in the data dictionary as transparent tables.
- External programs can NOT interpret the data in a cluster table.
- Special language elements EXPORT TO DATABASE, IMPORT TO DATABASE and DELETE FROM DATABASE are used to process data in the cluster tables.
PCL1 - Database for HR work area;
PCL2 - Accounting Results (time, travel expense and payroll);
PCL3 - Applicant tracking data;
PCL4 - Documents, Payroll year-end Tax data
Database Tables PCLn
- PCLn database tables are divided into subareas known as data clusters.
- Data Clusters are identified by a two-character code. e.g RU for US payroll result, B2 for time evaluation result...
- Each HR subarea has its own cluster.
- Each subarea has its own key.
Database Table PCL1
The database table PCL1 contains the following data areas:
- B1 time events/PDC
- G1 group incentive wages
- L1 individual incentive wages
- PC personal calendar
- TE travel expenses/payroll results
- TS travel expenses/master data
- TX infotype texts
- ZI PDC interface -> cost account
Database Table PCL2
The database table PCL2 contains the following data areas:
- B2 time accounting results
- CD cluster directory of the CD manager
- PS generated schemas
- PT texts for generated schemas
- RX payroll accounting results/international
- Rn payroll accounting results/country-specific ( n = HR country indicator )
- ZL personal work schedule
Database Table PCL3
The database table PCL3 contains the following data areas:
- AP action log / time schedule
- TY texts for applicant data infotypes
Data Management of PCLn
The ABAP commands IMPORT and EXPORT are used for management of read/write to database tables PCLn.
A unique key has to be used when reading data from or writing data to the PCLn.
Field Name
|
KEY
|
Length
|
Text
|
MANDT
|
X
|
3
|
Client
|
RELID
|
X
|
2
|
Relation ID (RU,B2..)
|
SRTFD
|
X
|
40
|
Work Area Key
|
SRTF2
|
X
|
4
|
Sort key for dup. key
|
Cluster Definition
- The data definition of a work area for PCLn is specified in separate programs which comply with fixed naming conventions.
- They are defined as INCLUDE programs (RPCnxxy0). The following naming convention applies:
- n = 1 or 2 (PCL1 or PCL2)
xx = Relation ID (e.g. RX)
y = 0 for international clusters or country indicator (T500L) for different country cluster
Exporting Data (I)
- 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.
Exporting Data (II)
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.
Exporting Data (II)
- 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
*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.
INCLUDE RPPPXD10.
DATA: END OF COMMON PART 'BUFFER'.
...
RP-EXP-Cn-xy.
IF SY-SUBRC EQ 0.
PERFORM PREPARE_UPDATE USING 'V'..
ENDIF.
Importing Data (I)
PERFORM PREPARE_UPDATE USING 'V'..
ENDIF.
Importing Data (I)
- 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
* Fill cluster Key
* Import record
IMPORT TABLE1 FROM DATABASE PCLn(xy) ID xy-KEY.
IF SY-SUBRC EQ 0.
* Display data object
ENDIF.
Importing data (II)
* Display data object
ENDIF.
Importing data (II)
- 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
REPORT RPIMPORT.
*Buffer definition
INCLUDE RPPPXD00
.
DATA: BEGIN OF COMMON PART 'BUFFER'.
INCLUDE RPPPXD10.
DATA: END OF COMMON PART 'BUFFER'.
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.
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.
Payroll Results (I)
- 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.
Payroll Results (II)
The cluster definition of payroll results is stored in two INLCUDE reports:
- include: rpc2rx09. "Definition Cluster Ru (I)
- include: rpc2ruu0. "Definition Cluster Ru (II)
The 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.
Payroll Results (III)
- 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.
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.
Payroll Cluster Directory
- To read payroll results, you need two keys: pernr and seqno
- You can get SEQNO by importing the cluster directory (CD) first.
REPORT ZHRIMPRT.
TABLES: PERNR, PCL1, PCL2.
INLCUDE: rpc2cd09. "definition cluster CD
PARAMETERS: PERSON LIKE PERNR-PERNR.
...
RP-INIT-BUFFER.
...
RP-INIT-BUFFER.
*Import cluster Directory
CD-KEY-PERNR = PERNR-PERNR.
RP-IMP-C2-CU.
CHECK SY-SUBRC = 0.
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.
INLCUDE: RPPPXM00. "PCL1/PCL2 BUFFER HANDLING
Function Module (I)
RX-KEY-PERNR = PERSON.
UNPACK RGDIR-SEQNR TO RX-KEY-SEQNO.
* Import data from PCL2
RP-IMP-C2-RU.
INLCUDE: RPPPXM00. "PCL1/PCL2 BUFFER HANDLING
Function Module (I)
CD_EVALUATION_PERIODS
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.
Function Module (II)
when that payroll is initially run. It also will select all the relevant periods to be evaluated.
Function Module (II)
CD_EVALUATION_PERIODS
call function 'CD_EVALUATION_PERIODS'
exporting
bonus_date = ref_periods-bondt
inper_modif = pn-permo
inper = ref_periods-inper
pay_type = ref_periods-payty
pay_ident = ref_periods-payid
tables
rgdir = rgdir
evpdir = evp
iabkrs = pnpabkrs
exceptions
no_record_found = 1.
Authorization Check
Authorization for Persons
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.- Employees 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'.