Wednesday, April 15, 2015

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)
  • 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 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
IMPORT TABLE1 FROM DATABASE PCLn(xy) ID xy-KEY.
IF SY-SUBRC EQ 0.
* 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'.
*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.


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.

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.
*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.
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)

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'.