Skip to Content

HR-ABAP data extraction with Decoupled framework

Aug 07, 2017 at 04:19 PM


avatar image

Hi All,

I try to implement a simple data extraction app. using DCIF.
I know the basic usage of classes to read specific PA / OM infotypes (CL_HRPA_MASTERDATA_FACTORY, CL_HRBAS_DISPATCH_BL).

The main constraint is that you always need to enter PERNR or OBJID for the method READ.

Is there a way to read all records of a single infotype for all employees / objects using DCIF?

The purpose is simple. Consider data extractor, working in two modes (initial upload, delta changes). In delta changes you can use standard API to read change pointers, change documents whatever to get data scope (list of changed PERNRs, OBJID). But in initial upload mode you simply need to extract all data. I can put a simple SELECT PERNR FROM PA0000 INTO TABLE LT_PERNRS and then use a loop over LT_PERNRS to read infotypes, but I'd rather expect to have a standard OO "data provider".

Thanks in advance for any suggestions

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

2 Answers

Horst Keller
Aug 07, 2017 at 04:36 PM

Don't know if it helps, but for processing these crazy HR infotypes, ABAP offers that fairly ununderstandable (at least for normal people) PROVIDE statement. I myself got exactly one abstract example running and quickly forgot about it ...

10 |10000 characters needed characters left characters exceeded
Volker Binder Aug 08, 2017 at 08:21 AM

The "standard data provider" in HR for PA data is logical database PNPCE, for OM PCH.

Documentation for both can be found at reports SAPDBPNPCE and SAPDBPCH.

But the simplies way for your purpose is indeed SELECT * FROM dbtab INTO TABLE inftytab without any WHERE condition.

The DBTAB for all infotypes is in table T777D so you can write your report dynamically:

SELECT SINGEL dbtab INTO gv_dbtab WHERE infty = my_infty.


ASSIGN ref_itab->* to <ref_tab>.

SELECT * FROM (gv_dbtab) INTO TABLE <ref_tab>.

10 |10000 characters needed characters left characters exceeded