4. Points of Difference*
Normal (General) ABAP
HR ABAP
• Less Usage of Logical
Databases
• Do not cover much additional
functional concepts
• Non coverage of Time
dependent data
• Less Usage of Macros and
Function Modules
• Storage and Access of Data
• Authorization Checks
• No Use of Provide Statements
and repetitive structure
• More Usage of Logical
Databases
• Covers more additional HR
functional concepts
• Coverage of Time Dependent
data
• More Usage of HR specific
Macros and Function Modules
• Storage & Access of Data
• Authorization Checks
• Use of Provide Statements and
repetitive structure
* Described further in lateral slides
5. Logical Databases
• In General ABAP, we rarely use Logical
Databases in our programs while in HR ABAP,
most of the time we are using Logical
Databases to select data from Infotypes by
using GET event.
• Logical Databases used in HR module are:
PNP, PNPCE, PCH, PAP, PTRVP etc. It provides
Standard Selection-Screen, Data retrieval and
Automatic authorization check facilities to the
user.
6. Functional Concepts
• In ABAP HR, use of certain SAP HR specific
functional concepts are involved such as,
Infotype Concepts, Time Constraint concepts,
Retroactive evaluation of employee data etc.
• HR module uses a system of data grouped
together called Infotypes. It’s a four character
numerical string. It can be processed
Individually or in Fast entry mode.
• Infotype can be saved as time-dependent to
enable retroactive evaluation of employee data.
7. Time Dependent Data
• Infotype provides facility of storing Time
dependent data of employee. It enable you to
determine how the validity periods of Infotype
data records interact. For that mostly used three
time constraints are: Time Constraint 1: Exactly
one valid data record of Infotype exist. Gaps and
Overlapping not allowed. Time Constraint 2: No
more than one valid data record exist at any
given time. Gaps are allowed but Overlapping
not allowed. Time Constraint 3: Any number of
records exist at any given time. Both Gaps and
Overlapping are allowed.
8. Macros and Functional Modules
• Program that process the cluster data, do not
access the cluster independently. The data is
accessed using a defined Interface created with
macros. Macro contain some part of source code
which may be useful for no. of applications. Ex.
RP_PROVIDE_FROM_FRST,
RP_PROVIDE_FROM_LAST etc. (PNP-SW-FOUND
= 1 for successful records).
• Generally but Not in every cases, HR Specific
function modules starts with HR* and RH*. Ex.
HR_READ_INFOTYPE, R_INFOTYPE_OPERATION,
CU_READ_RGDIR etc.
9. Storage and Access of Data
•
HR specific Data are stored in Infotypes, which can be accessed through special kind of
ABAP/4 program which is called as Logical Database. Using LDBs, facilitates the process
of reading Database tables.
•
Data Retrieval/Access from LDBs:
1. Create Data Structure for Infotype
- INFOTYPES: 0001. “Org. Assignment
2. Fill Data Structure with Infotype records
- START-OF-SELECTION.
GET PERNR. “ Get Event
3. Read Data
- PROVIDE * FROM… “ Provide Statement
ENDPROVIDE.
- END-OF-SELECTION.
10. Authorization Checks
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.
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.
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)
11. Provide Statements and Repetitive
Structure
•
The infotype records (selected within the period) are processed sequentially by the
PROVIDE - ENDPROVIDE loop. Ex. PROVIDE * FROM Pnnnn BETWEEN PN/BEGDA AND
PN/ENDDA
If Pnnnn-XXXX = ' '. write:/ Pnnnn-XXXX. endif.
ENDPROVIDE.
In the Repetitive structure, you must define the starting point, the increment and the work
area which contains the complete field group definition. Ex.
DO 6 TIMES VARYING VACATION
FROM P0005-UAR01 "Starting point
NEXT P0005-UAR02. "Increment
If p0005-xyz then ... endif.
ENDDO.
13. Why HR is different from other modules ?
The following concepts are defined in HR which
differs this module with other modules
1. Use of Infotypes
2. The use of Logical Database
3. Use of Macros
4. Storage and Access of data
5 Authorization checks
14. Personnel Administration
It relieves you from the daily administrative routine
activities which are costly and time consuming, while
simultaneously supporting you in demanding planning
activities.
E.g. Organization management comes under administration.
15. Payroll accounting
It deals with the employee salaries in the
Organization.
E.g. : Calculating the Gross salary,Net salary.
16. Personnel Planning and Development :
It was designed to support the decision making process in
any organization.
It deals with giving inputs and taking outputs from the
employees and setting up goals to individual employees and
impart training to the employees.
It also deals with recruitment of employees for the
organization.
E.g. Recruitment ,Training and event management comes under
planning.
There are other functions like time and travel management in HR
17. Organization :
We can define an Organization as an individual Enterprise
(company or industry) in which someone is leading it and with
some departments like HR,Marketing,Finance,R&D etc.
For any organization Employees are the most powerful
resource. So to maintain the employee related data we require
one system which ensures accuracy and consistent within the
Organization.
19. The organizational hierarchy deals with the
following areas :
• Company Structure
• Personnel Structure
• Pay scale Structure
• Wage type Structure
• HR authorizations
20. The company structure or corporate
group is divided into :
• Company code
• Personnel area
• Personnel Sub-area
Company Structure
21. Company code :
Represents the highest level of Company structure.
Personnel Area :
It can represent large divisions within a company and
Geographic locations.
Personnel Sub-area :
Personnel sub areas are a subdivision of the personnel
area. At this level ,the organizational aspects are controlled .
Country groupings , Public Holiday calendar and wage type
structures comes under organizational aspects .
Company Structure (Contd…)
22. The components in Personnel structure are
Administrative :
Employee Group,
Employee Subgroup and
Payroll area.
Organizational :
Job,
Position and
Organizational unit.
24. Employee Group : General classification of employees.
Active ,
Retired,
Contractors and
External Employees.
Employee Sub group : Division of employee groups.
Hourly based,
Salaried,
Executives and
Trainees
Personnel structure (Contd…)
25. Payroll Area :
The active employees are also divided into
payroll areas that determine when they receive their
paychecks like weekly or semi-monthly.
Personnel structure (Contd…)
26. Job : Description of activity performed by the Employee.
Coding,
Management
Position : Employee Placement or individual employee
assignment within the company.
Software Engineer or
Manager
Organization Unit : Performs a specific set of functions
within company.
Department or
subsidiary etc
Personnel structure (Contd…)
29. Entering personnel data :
Employee-specific data is entered according to the following
guidelines:
• Fitting the employee into the organizational structure has the
highest priority; this is the first step in entering personal data.
• The set of valid entries for the entry mask is defined in the
validation tables.
• The set of valid entries in the tables is further restricted
depending on the organizational assignment of the employee.
30. Master data Infotypes :
When a new Personnel number is created , the following
Infotypes have to be maintained first.
• Events (0000)
• Organizational Assignment (0001)
• Personal Data (0002)
• Payroll Status (0003)
31. Personnel Events :
A function that groups together infotypes for processing
personnel procedures.
Business Procedures in Personnel Administration
When managing employee data the following tasks can
perform
• Hiring an employee
• Organizational reassignment
• Leaving the company
32. Hiring an employee :
When assigning a new employee in a company, we have to
enter large amount of data for employee into the system. In HR
different types of employee data are stored in infotypes.
When hiring an employee, we need to maintain lot of infotypes,
Hiring can be carried out using a personnel event.
33. Organizational reassignments :
Important changes in an employee's career path must
be documented in the system. Consequently, the standard
SAP system contains the personnel event Organizational
reassignment. When you run this personnel event, the
system will automatically offer you the infotypes that you
need to maintain.
34. Leaving the company :
When the employee leaves the company, certain infotypes
cannot be changed .The personnel event Leaving is used to
depict an employee leaving the company in the system. This
event gives the infotypes for maintaining the data of when an
employee leaves the company.
36. Data handling in HR (Using of Infotypes):
Master data in HR is stored in infotypes.
Each infotype pertains to a specific type of data.
Each infotype has a database table associated with it.
Example : For Infotype 0000, the corresponding
database table associated with it is PA0000.
37. What is Infotype
The information units used to enter the data of an
employee are called infotypes.
The Infotypes are used to group related data fields together.
E.g.. IT0006.(address)
Why Infotype
As HR is related to time , we require old data as well as
new data. The data we enter into the infotypes are automatically
checked for accuracy and against the table entries.
In simple, HR data is huge and to access data easily we
require Infotype.
38. What is logical database?
The LDB is special type of ABAP program that combines the
contents of certain related database tables and retrieve some
related data and make it available to application programs.
In other words, a LDB is a method by which ABAP programs
read and process the data. The sequence in which the data
is supplied to the program is determined by a tree structure.
39. The LDB usually consists of the following
components.
• Structure
• Selections
• Database programs
Logical Database (Contd…)
40. Logical databases have a tree structure.
A logical database can contain a maximum of 300 tables
Logical Database (Contd…)
41. SAPDBPNP is the name of the database program for the
logical database PNP.
Logical Database (Contd…)
42. How are logical database used
1.Logical databases when generating an ABAP program
o The selection screen generated contains the selections
(SELECT-OPTIONS AND PARAMETERS) of both the logical
database and the program.
o The only database-specific selections displayed on the
selection screen are those needed by the program for data
retrieval purposes
Logical Database (Contd…)
43. 2. Logical databases at run-time of an ABAP program
At run-time, the system processes the events in the program
and in the logical database in the following order
o Before displaying the selection screen, certain initializations
(e.g. calculating default values such as key date, etc.) are
performed for the selection screen by the logical database
and the program.
o The selection screen is displayed and the user enters data in
the input fields.
Logical Database (Contd…)
44. o The logical database and the program check that the input is
correct and complete , but also that the user has the appropriate
authorizations. If an error occurs, some fields are made ready for
input again, so that the user can make the necessary correction(s).
o In the event START-OF-SELECTION, the ABAP program
performs any preliminary work (for ex, importing files).
o The logical database reads the selected data and the program
processes it within the GET events according to the sequence
specified by the structure.
o In the event END-OF-SELECTION, the ABAP program performs
any concluding operations (for example, calculating totals,
exporting files).
Logical Database (Contd…)
45. 3 . Designing the selection screens
o The standard selection screen of a logical database has a
standard layout where SELECT-OPTIONS and PARAMETERS
appear in the sequence they are declared, each on a new line.
The system automatically generates such a screen for each
program that does not have its own selection screen entered in
the attributes.
Logical Database (Contd…)
46. o You can define your own selection screens for any logical
database . If the attributes of a program include the number of
its own selection screen, the system uses this screen as a model
when generating. Any program-specific selections appear after
the database selections. The flow logic for such screens is also
generated automatically and therefore cannot be modified. You
cannot delete database selections
Logical Database (Contd…)
47. Functions of LDB:
Data retrieval :
The personnel data of each employee is loaded into the main
memory where it can be accessed for processing.
Screening :
Employees can be selected according to the organizational
criteria entered on the selection screen.
E.g...Hourly wage earners in a particular personnel sub area.
48. There are two types of screening..Person selection and data
selection period.
Person selection defines those employees for whom a report is
to be run.
E.g..Monthly wage earners in a specific personnel sub-area.
E.g..Personnel number range
E.g..Features of org.Assignment...Employees who assigned to
certain cost center.
E.g..Employee status..Active or inactive.
Functions of LDB (Contd…)
49. The data selection period delimits the time period for which data
is evaluated.
When you enter the data selection period,the provide loop
retrieves the infotype records whose validity period overlaps
with at least one day of this period.
Authorization check : This ensures that the person starting
the evaluation Is authorized to access the report data.
Functions of LDB (Contd…)
50. REPORT CLASS WITH LDB :
You can change the layout of the selection screen by assigning
classes to reports of the logical database PNP.This allows you
to suppress the input fields which are not used.
All reports without a report class are assigned the customer
default report class '00000000'.Otherwise the sap default report
class ' ' is assigned.
Report class assignments are stored in table t599b or t599w.
Table t599b contains customer report classes and t599w the
sap report classes.
51. Continue...
If a report has no report class,either the customer default
class(t599c) or the SAP default class(t599f) is used.
All reports that use the logical database PNP automatically
contains DBPNPCOM module.
You can also read the records of an infotype for a particular
personnel number without using the logical database,through
RP-READ-INFOTYPE.
Report Class With LDB (Contd…)
52. GET PERNR :
This event fills the data structures of declared infotypes with
all records that exists for a personnel number.
Data selection does not delimit the records that retrieved from
the database.
53. Whenever GET PERNR statement is included in your
program, check the following two .
1.Have you included PNP for the logical database screen field
in the program attributes.
2.Have you included PERNR structure in the tables
declaration.
Get Pernr (Contd…)
54. Macros :
Macro contains some part of source code which it will be useful
for number of applications.
The macro RP-PROVIDE-FROM-LAST retrieves the last(latest)
data record which is valid in the data selection period.
The macro RP-PROVIDE-FROM-FRST retrieves the first(start)
data record which is valid in the data selection period.
For every macro, whether the operation was successful or not
will be checked with PNP-SW-FOUND.
If PNP-SW-FOUND = 1 , then the operation is successful.
55. Macros (Contd…)
The macro RP-READ-INFOTYPE retrieves all the data record(s)
which is valid in the data selection period.
If SY-SUBRC = 0 , then the process is successful.
The program code pertaining to this macro is stored in the
control table TRMAC
Macros
56. Macros (Contd…)
Whenever you are using the macros like
RP-PROVIDE-FROM-LAST or
RP-PROVIDE-FROM-FRST,
check whether you have included logical database PNP
in program attributes.
Macros
57. It is not necessary to include logical database PNP in your program
when you are using the macro like
RP-READ-INFOTYPE A B C D E , where
A corresponds to PERNR which describes for which personnel number
you require records.
B corresponds to INFOTYPE which describes from which infotype you
require records.
C corresponds to data structure of the declared infotype (internal table
like p0000 for infotype 0000) where all the records of the particular
personnel number will be stored.
D corresponds to Start date.
E corresponds to End date.
Macros (Contd…)
58. Consider a personnel number , for example 37.
With the GET PERNR statement, when the personnel
number 37 comes all the records available with that
personnel number will be retrieved.
Let us assume those records as follows.
P.NO.
010
010
010
010
010
00000037
00000037
00000037
00000037
00000037
End date
13.07.1998
30.05.2000
04.07.2001
31.01.2002
31.12.9999
Begin date
12.09.1997
14.07.1998
31.05.2000
05.07.2001
01.02.2002
Macros (Contd…)
59. Consider the macro shown below.
RP-PROVIDE-FROM-LAST SPACE PN-BEGDA PN-ENDDA
If we assign 01.01.1997 to PN-BEGDA
and
31.12.1998 to PN-ENDDA.
Then the following record will be retrieved.
010 00000037 13.07.1998 12.09.1997
If we assign 05.07.1997 to PN-BEGDA
and
01.06.2000 to PN-ENDDA.
Then the following record will be retrieved.
010 00000037 04.07.2001 31.05.2000
Macros (Contd…)
60. Consider the macro shown below.
RP-PROVIDE-FROM-FRST SPACE PN-BEGDA PN-ENDDA
If we assign 01.01.1997 to PN-BEGDA
and
31.12.1998 to PN-ENDDA.
Then the following record will be retrieved.
010 00000037 13.07.1998 12.09.1997
If we assign 15.07.1998 to PN-BEGDA
and
01.06.2000 to PN-ENDDA.
Then the following record will be retrieved.
010 00000037 30.05.2000 14.07.1998
Macros (Contd…)
61. Subtypes :
The sub-division of infotype records are subtypes.Each
subtype representing an infotype category with its own time
character.
Infotype 0006 is for addresses.This addresses are sub-divided
in the IT0006 as permanent residence,secondary residence
and home address.
62. Cluster :
set of data objects.
Elementary fields , field strings and internal tables etc. will
come under data objects.
You can store data clusters in ABAP/4 memory for short time
and in database for longer time.
63. Cluster (Contd…)
To write data objects from ABAP/4 program to ABAP/4
memory,the following statement is used.
Export f1
f2
to memory id 'table'.
Import f1
f2
from memory id 'table'.
Free memory id 'table'...Cluster will be deleted from the
memory.
Cluster
64. These cluster databases come into picture to keep the information
relating to a company more secure.
e.g. Payroll, time related data.
e.g. cluster database tables PCL1, PCL2, PCL3 and PCL4.
PCL1 is the database for HR application areas.It contains information
regarding the time recording.
PCL2 contains information regarding payroll accounting.
PCL3 contains applicant data.
PCL4 contains change documents for HR master data.
Cluster rx contains the payroll results for country x according to table
T500l.
65. The clusters can be called from macros.
RP-IMP-Cn-xx ( n = 1,2,3,4 and xx is cluster)
When macro is used to import data,it is not directly get from
database table PCL, instead it checks for the buffer directory
whether it contains it in main memory.
If it is there it takes it from main memory..otherwise it reads
from PCL to main memory and from there to the report.
Standard import programs follow the naming convention
RPCLSTxx..xx is cluster.
RP-EXP-Cn-xx ( n = 1,2,3,4 and xx is cluster)