accessing cluster tables in sap

22

Click here to load reader

Upload: roys4396510

Post on 01-Dec-2015

342 views

Category:

Documents


23 download

DESCRIPTION

cluster

TRANSCRIPT

Page 1: Accessing Cluster Tables in SAP

Accessing Cluster Tables in SAPPayroll Custer Tables

http://www.planetsap.com/HR_ABAP_payroll.htm

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; (long text, etc)PCL2 - Accounting Results (time, travel expense and payroll); (payroll results)PCL3 - Applicant tracking data; PCL4 - Documents, Payroll year-end Tax data (change logs, etc)

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, TX for long text, LA for change logs.

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

Page 2: Accessing Cluster Tables in SAP

SRTFD (PSKEY) = pernr (8) info type (4) subtype (4) obj id (2) lock (1) endda (8) begda (8) seqnr (3)

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 RU for

US payroll result) ZL personal work schedule

SRTFD (PC200) = pernr (8) sequence (5)

Database Table PCL3

The database table PCL3 contains the following data areas:

AP action log / time schedule TY texts for applicant data infotypes

Database Table PCL4

The database table PCL4 contains the following data areas:

LA change logs (long term documents)

Page 3: Accessing Cluster Tables in SAP

SA Short-Term Documents for HR Master Data SB Short-Term Documents for Applicant Master

SRTFD (PC400) = trans class always A for master data (1) pernr (8) info type (4) modified date (8) modified time (8) seqnr (4)

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. o MANDT(3) cliento RELID (2) cluster ID (RU,TX, LA..) o SRTFD (40) Work Area Key o SRTF2 (4) Sort key for dup. key

Cluster Definition

Naming convention for INCLUDES when defining clusters. These INCLUDES will define the work area key above and the cluster data that is returned from an IMPORT:

RPCnxxy0

n = 1, 2, 3 or 4 (for PCL1, PCL2, PCL3, PCL4) xx = cluster ID y = country grouping (0 for international otherwise country indicator T500L)Description of Cluster Data using Cluster RX as an Example The data description is stored in the include RPC2RX00 in accordance with the above naming conventions.

RPC1TX00 - Long text cluster ID in table PCL1 RPC2RUU0 - Payroll results for the US cluster ID in table PCL2 RPC4LA00 - Change log cluster ID in table PCL4

Importing Data (I)

Page 4: Accessing Cluster Tables in SAP

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 ZRPIMPORT. TABLES: PCLn. INCLUDE RPCnxxy0. "Cluster definition * Fill cluster Key * Import record IMPORT TABLE1 FROM DATABASE PCLn(xx) ID xx-KEY.    IF SY-SUBRC EQ 0.       * Display data object     ENDIF.

See sample program for long text.

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

rpcbdt00 - include needed for importing from database PCL4(la) (Change log cluster ID)

Page 5: Accessing Cluster Tables in SAP

When we upgraded to ERP2005, we encountered a problem because a couple of our programs tested the version (VERNR) number to determine which structure the detail used. The SAP include program, RPCBDT00, indicates that VERNR 01 & 02 use the same structure which is PC404. Therefore, we made our programs match SAP.

Payroll Results (I)

US Payroll results are stored in cluster RU of PCL2 as field string and internal tables.

Standard reports read the results from cluster RU. o Report RPCLSTRU lists all US payroll results; o Report RPCEDTU0 lists the US results on a payroll form.

Payroll Results (II)

The cluster definition of payroll results is stored in two INLCUDE reports: o include: RPC2RX09. "Definition Cluster Ru (I) o 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.

RX-KEY = (PC200) = pernr (8) sequence (5)

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.

To read payroll results, you need two keys: pernr and seqno

Page 6: Accessing Cluster Tables in SAP

You can get SEQNO by importing the cluster directory (CD) for a pernr first. (see cluster directory)

*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

REPORT ZHRIMPRT. TABLES: PERNR, PCL1, PCL2. INLCUDE: RPC2CD09. "definition cluster CD PARAMETERS: PERSON LIKE PERNR-PERNR. ... RP-INIT-BUFFER. " macro to get one person at a time based on single parameter for pernr*Import cluster Directory    CD-KEY-PERNR = PERNR-PERNR. RP-IMP-C 2 - C U . " defined in include file   CHECK SY-SUBRC = 0. LOOP AT RGDIR.    RX-KEY-PERNR = PERSON.    UNPACK RGDIR-SEQNR TO RX-KEY-SEQNO. " converts rgdir-seqnr (numc 5) to packed and moves to char 5   *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. o 'P' - previous result

Page 7: Accessing Cluster Tables in SAP

o 'A' - current (actual) result o '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 " Key Date for Check (optional)          inper_modif = pn-permo " Period parameters          inper = ref_periods-inper " Payroll Period          pay_type = ref_periods-payty " Payroll category (optional)          pay_ident = ref_periods-payid " Payroll identifier (optional)     tables           rgdir = rgdir " Cluster Directory           evpdir = evp " Periods to be Evaluated          iabkrs = pnpabkrs " Payroll Areas (optional)     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.

Page 8: Accessing Cluster Tables in SAP

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

Cluster Table

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

u2022 Retrieval of data is very fast if the primary key is known.

u2022 Cluster tables are defined in the data dictionary as transparent tables.

u2022 External programs can NOT interpret the data in a cluster table.

u2022 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

u2022 PCLn database tables are divided into subareas known as data clusters.

Page 9: Accessing Cluster Tables in SAP

u2022 Data Clusters are identified by a two-character code. e.g RU for US payroll result, B2 for

  time evaluation result...

u2022 Each HR subarea has its own cluster.

u2022 Each subarea has its own key.

Database Table PCL1

u2022 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

u2022 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

Page 10: Accessing Cluster Tables in SAP

  Rn payroll accounting results/country-specific ( n = HR country indicator )

  ZL personal work schedule

Database Table PCL3

u2022 The database table PCL3 contains the following data areas:

  AP action log / time schedule

  TY texts for applicant data infotypes

Data Management of PCLn

u2022 The ABAP commands IMPORT and EXPORT are used for management of read/write to

  database tables PCLn.

u2022 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

u2022 The data definition of a work area for PCLn is specified in separate programs which comply  

   with fixed naming conventions.

u2022 They are defined as INCLUDE programs (RPCnxxy0). The following naming convention applies:

Page 11: Accessing Cluster Tables in SAP

   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)

u2022 The EXPORT command causes one or more 'xy' KEY data objects to be written to cluster xy.

u2022 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)

Page 12: Accessing Cluster Tables in SAP

. Export data using macro RP-EXP-Cn-xy.

u2022 When data records are exported using macro, they are not written to the database but to a  

  main memory buffer.

u2022 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)

u2022 The IMPORT command causes data objects with the specified key values to be read from

   PCLn.

u2022 If the import is successful, SY-SUBRC is 0; if not, it is 4.

Page 13: Accessing Cluster Tables in SAP

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)

u2022 Import data using macro RP-IMP-Cn-xy.

u2022 Check return code SY-SUBRC. If 0, it is successful. If 4, error.

u2022 Need include buffer management routines RPPPXM00

REPORT RPIMPORT.

*Buffer definition

INCLUDE RPPPXD00.

DATA: BEGIN OF COMMON PART 'BUFFER'.

INCLUDE RPPPXD10.

Page 14: Accessing Cluster Tables in SAP

DATA: END OF COMMON PART 'BUFFER'.

*import data to buffer

RP-IMP-Cn-xy.

....

*Buffer management routines

INCLUDE RPPPXM00.

Cluster Authorization

u2022 Simple EXPORT/IMPORT statement does not check for cluster authorization.

u2022 Use EXPORT/IMPORT via buffer, the buffer management routines check for cluster

  authorization.

Payroll Results (I)

u2022 Payroll results are stored in cluster Rn of PCL2 as field string and internal tables.

  n - country identifier.

u2022 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)

u2022 The cluster definition of payroll results is stored in two INLCUDE reports:

  include: rpc2rx09. "Definition Cluster Ru (I)

  include: rpc2ruu0. "Definition Cluster Ru (II)

Page 15: Accessing Cluster Tables in SAP

The first INCLUDE defines the country-independent part; The second INCLUDE defines the country-specific part (US).

u2022 The cluster key is stored in the field string RX-KEY.

Payroll Results (III)

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

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

Page 16: Accessing Cluster Tables in SAP

Payroll Cluster Directory

u2022 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

Page 17: Accessing Cluster Tables in SAP

Function Module (I)

  CD_EVALUATION_PERIODS

u2022 After importing the payroll directory, which record to read is up to the programmer.

u2022 Each payroll result has a status.

  'P' - previous result

  'A' - current (actual) result

  'O' - old result

u2022 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

Page 18: Accessing Cluster Tables in SAP

          rgdir = rgdir

          evpdir = evp

          iabkrs = pnpabkrs

     exceptions

          no_record_found = 1.

Authorization Check

   Authorization for Persons

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

u2022  Employees for which the user has no authorization are skipped and appear in a list at the end

   of the report.

u2022  Authorization object: 'HR: Master data'

Authorization for Data

u2022 In the authorization check for data, the system determines whether the user is authorized to

  read the infotypes specified in the report.

u2022 If the authorization for a particular infotype is missing, the evaluation is terminated and an error

  message is displayed.

Page 19: Accessing Cluster Tables in SAP

Deactivating the Authorization Check

u2022 In certain reports, it may be useful to deactivate the authorization check in order to improve

  performance. (e.g. when running payroll)

u2022 You can store this information in the object 'HR: Reporting'.