Difference between logical database PNP and PNPCE
By Chandeep Singh, Fujitsu India
The PNPCE logical database supports the evaluation of HR master data. It
includes the functions of the PNP logical database and offers additional
evaluation options. Therefore, you should use the PNPCE logical database instead
of the PNP logical database for all new developments.
The enhanced functionality of PNPCE in comparison to PNP essentially concerns
the evaluation of Concurrent Employment, that is the possibility to group
evaluate several assignments/personnel numbers of a person. The new events 'GET
PERSON' and 'GET GROUP' as well as an enhanced syntax for the INFOTYPES
statement (addition AS PERSON TABLE) for the procurement of infotype data enable
you to use the new functionality. The use of these new functions is optional.
You can run a PNPCE report that does not use the new events and the addition for
the INFOTYPES statement in a PNP-compatible session. Since the PNPCE also has an
improved selection screen, each report benefits from this even if the report
does not use the functions for evaluating Concurrent Employment.
A report that wants to use the PNPCE must enter this in its report attributes
under Logical database.
In addition, the PERNR structure must be declared in the report using the
'TABLES PERNR' statement. You can only use the PERNR structure again in certain
circumstances. The use of the 'GET PERNR' event is therefore forbidden. Instead,
use the 'GET PERAS' event. Except for the PERNR-PERNR component, all other
components of the PERNR structure are no longer filled and have initial values.
This kind of programming (with the exception of PERNR-PERNR) therefore not
In addition to the 'GET PERAS' event, you can also use the GET PERSON' and 'GET
GROUP' events. To be able to use these events, you must declare them using the
NODES statement (NODES PERSON', 'NODES GROUP', or. NODES PERAS').
Explanation of Terms
If the 'GET PERSON' and 'GET GROUP events and the 'AS PERSON TABLE' addition for
the INFOTYPES statement are not used, the report indicates that it does not
require the functionality for evaluating Concurrent Employment. In this case,
the report runs in a PNP-compatible session. This is referred to as PNP mode in
the following documentation. On the other hand, if the report uses the
functionality for evaluating Concurrent Employment we refer to CE mode.
Process of an Evaluation
The PNPCE selection screen offers you as standard a range of functions that you
can use to restrict the personnel number and person selection. These are
discussed in more detail in the following sections. The process is initially as
follows regardless of whether the report runs in CE or PNP mode. All available
functions and selection conditions leads to the selection of personnel numbers.
If you use the sorting function, this set of personnel numbers is then sorted
according to the sort criteria you selected. In PNP mode, the GET PERAS event is
triggered as a result for each personnel number.
In CE mode, the persons belonging to the personnel numbers are determined first
for all personnel numbers selected. The GET PERSON event is then triggered for
each person. The person ID is specified in the OBJID component of the PERSON
structure. PERNR_NUM contains the total number of personnel assignments (=
personnel numbers) that this person has and the ALL_PERNRS table, which contains
a list of these personnel numbers regardless of whether they were actually
selected or not. The SELECTED flag is set to X for the personnel numbers
selected. The flag is initial for all personnel numbers that are not selected.
The PROCESS flag specifies whether the personnel number should be processed in
the rest of the process. This flag is set to X by default for the personnel
numbers selected. However, the report can set or delete this flag at the GET
PERSON event for all personnel numbers. In this way, report and logical database
communicate with each other which enables the report to control the rest of the
In the next step, the logical database groups all personnel numbers of a
person that are to be processed (that is, all personnel numbers that have the
PROCESS flag set). The report can control the type of grouping using the
PNPCE_GROUPING_FROM_PAYROLL flag (normal or payroll grouping) and using the
PNPGPRSN (grouping reason) and PNPGPVAL (grouping value) parameters of the
selection screen. The GET GROUP event is triggered for each group of personnel
numbers determined. The GROUPING_REASON and GROUPING_VALUE components contain
the grouping reason and grouping value of this group. The number of personnel
numbers that belong to this group and that are processed subsequently is in
PERNR_NUM. The included ALL_PERNR table contains a list of these personnel
numbers with additional information. The SELECTED flag specifies whether the
current personnel number was originally selected (flag is set) or was marked by
the report as to be processed. GROUPING_BEGDA and GROUPING_ENDDA contain the
validity period that the personnel number has for this grouping. The
NO_AUTHORITY flag is set if there is insufficient authorization for a personnel
number. This personnel number is not processed further. The SORT component
defines a standard sort order for the personnel numbers of a group. The report
can change this by overwriting the values. In this way, report and logical
database communicate with each other, which controls the further processing
sequence of the personnel numbers.
The GET PERAS event is then triggered for all personnel numbers of the group
(with the exception of the personnel numbers for which no authorization exists)
in the sequence defined by the SORT component (see above). The SELECTED,
GROUPING_BEGDA, and GROUPING_ENDDA components have the same meaning here as with
the GET GROUP event. The PROCESSED_BEFORE flag specifies whether the personnel
number has already been processed once before (it is possible that the personnel
number belongs to several groupings and has been therefore been processed