Logical DB (GET)
Build with transaction SLDB.
Alternatively see also Context
(SUPPLY / DEMAND, SE33)
In HCM there are only two: PNP, PNPCE (+? PCH, PAP).
pnp_sw_skip_pernr = 'N'.
V_T599R_B | Ablaufsteuerung für log. DB vorgeben, siehe Doku |
Personalnummern wurden vom Datenbanktreiber ueberlesen. Grund1: mangelnde Berechtigung; Anzahl geskippte Personalnummern: xthen it is generated from the logical database PNP (only).
So, how to get to know which ones where skipped?
If you can modify your report or the one from SAP you can call the macro PNP_GET_AUTH_SKIPPED_PERNRS at END-OF-SELECTION.
I still have not found out, where this one is defined, but you can look into the logical database's report with x.SE36 > Databaseprogram.
i.DBPNPF01 | FORM mac_get_auth_skipped_pernrs you can see that itab G_AUTH_SKIPPED_PERNRS is used to collect those. |
i.DBPNPI01 | FORM end-processing (row 307) you can see the message handling. |
i.DBPNPCECOM | Main macros fro PNP and PNP |
i.DBPNPMAC | Additional macros for PNP |
r.SAPDBPNPCE | see docu for additional infos! |
So you can set a breakpoint here and look by your own in G_AUTH_SKIPPED_PERNRS for the skipped pernr when you run the report of choice in dialog mode.
"Internal table to hold skipped pernrs into internal table DATA: lt_skipped_pernrs TYPE hrahq_pernr_table, ls_skipped_pernrs LIKE LINE OF lt_skipped_pernrs. START-OF-SELECTION. GET pernr. gv_pernr = pernr-pernr. (or GET peras. gv_pernr = peras-pernr. ) END-OF-SELECTION. "Macro PNP_GET_AUTH_SKIPPED_PERNRS (for PNP+PNPCE) pnp_get_auth_skipped_pernrs lt_skipped_pernrs. " or one of these: " PNPCE: perform mac_get_auth_skipped_pernrs in program sapdbpnpce changing lt_skipped_pernrs. " PNP: perform mac_get_auth_skipped_pernrs in program sapdbpnp changing lt_skipped_pernrs. IF lt_skipped_pernrs IS NOT INITIAL. WRITE:/ 'List of skipped personnel no:'. LOOP AT lt_skipped_pernrs INTO ls_skipped_pernrs. WRITE:/3 ls_skipped_pernrs-pernr. ENDLOOP. ENDIF.
1. perform pnp_skipped_pernr(sapdbpnp) ... 2. f.HR_GET_ERRORTAB_FROM_PNP_INFO (<= this sets it automatically)
With PNPCE you can choose various time periods (see domain PCCE_PERIOD for values).
The type is saved in the PNPCE variable PNPTIMED.
You should check this one if necessary and NOT rely on the PNPTIMR1-6 fields.
To get the resulting BEGDA and ENDDA you should use the structure PN, e.g.
PN-BEGPS and PN-ENDPS | Person period (phase 1, e.g. all person matching the criterias in this period) |
PN-BEGDA and PN-ENDDA | Data period (phase 2, all data within that period for all persons from phase 1) |