Sie sind auf Seite 1von 5

he biggest thing I have to tell you is that you have to let go of the select statement.

In HR ABAP you use select


statements significantly less than in other areas of ABAP development. Logical databases have limited applications in
other modules but are very useful in HR. Also, you really need to understand the infotype time constraint concept.
When you cannot get the information that you need out of the logical DB look at the function modules starting with
HR* and RH*. These function modules will provide you with multiple ways of accessing data to save time. Worst-case
scenario, use a select statement

Infotypes are the only way to pull current HR data from a screen in HR. Other modules only utilize screens; however,
in HR the same screen can be utilized multiple times for different reasons (i.e. New Hire, Termination and Leave of
Absence). ABAP programming must utilize Infotypes to capture accurate information.

What The Differences Between ABAP and HR-ABAP


The ABAP HR is an integral part of ABAP. Generally in ABAP the following are done:

1) Table development
2) Date Processin
3) Reprt developing
4) BAPIs /RFC s
5) Data base update
6) Screens development/enhancement
7) Scripts and smart forms.
8) Function Building
9) Java connectors etc.

This is basically done through the PROGRAMMING in ABAP builder by using ABAP 4th generation languge. This
may be related to any module of my SAP ERP 2004 like HR, FICO.SD,MM,CRM Etc.,

Now when it is said ABAP HR. It is the development of ABAP in the area of HR to meet the clients requirements
according to the functional specifications .They may be in any area of HR like in the areas of time aspects ,pay
aspects, OM aspects and Self Services like E-recruitment, ESS etc.,

One example of ABAP PROGRAMME related to HR is given below.

Report: ZP_POSTCODE: This report has been developed by the ABAPER in the area of SAP HR to Display report of
employees by postcode that includes current traveling allowances (i.e. parking, permit or transport card etc.)

*:.....................................................................:

*: Use: Help encourage the use of car sharing and public

transport wherever it appropriate (this is the functional requirement of the client or the
functional specification

(which is given by the functional consultants)


NFOTYPES: 0000, 0001, 0002, 0006, 0008, 0014, 0105, 0121.
SELECTION-SCREEN BEGIN OF BLOCK pcode WITH FRAME TITLE text-s01.
SELECT-OPTIONS: so_pcode FOR p0006-pstlz.
SELECTION-SCREEN END OF BLOCK pcode.
TYPES: BEGIN OF t_output,
pernr
TYPE p0001-pernr, "personnel name
anredtxt TYPE t522t-atext, "title (based on p0002-anred)
fname
TYPE p0002-vorna, "first name
lname
TYPE p0002-nachn, "last name
orgtx
TYPE t527x-orgtx, "dept
fte
TYPE p0008-bsgrd, "fte
parking(20) TYPE c,
payslip TYPE t526-sachn,
"payslip address
telno
TYPE p0105-usrid_long, "tel number(p0105-usrty = 0020)

email
TYPE p0105-usrid_long, "email (p0105-usrty = MAIL)
postcode type p0006-pstlz,
END OF t_output.
DATA: it_output TYPE STANDARD TABLE OF t_output INITIAL SIZE 0,
wa_output TYPE t_output.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout
type slis_layout_alv,
gd_repid
like sy-repid,
gt_events
type slis_t_event,
gd_prntparams type slis_print_alv,
gd_count(6) type n,
gd_outtext(70) type c,
gd_lines
type i.

*START-OF-SELECTION.
START-OF-SELECTION.
clear: gd_count.
GET pernr.

Infotype 0121 is used to store multiple contracts for personnel.


Field p0121-hpern contains the personnel number for the main contract.
PROVIDE * from p0121 between pn-begda and pn-endda.
Check if main contract
if p0121-pernr ne p0121-hpern.
reject.
endif.
ENDPROVIDE.
add 1 to gd_count.
concatenate 'Processing personnel data'(m10) gd_count into gd_outtext
separated by ' '.

Display indicator for employee count


perform progress_indicator using gd_outtext.

Retrieve datd from infotypes


rp_provide_from_last p0000 space pn-begda pn-endda.
rp_provide_from_last p0001 space pn-begda pn-endda.
rp_provide_from_last p0002 space pn-begda pn-endda.
rp_provide_from_last p0006 space pn-begda pn-endda.
rp_provide_from_last p0008 space pn-begda pn-endda.
rp_provide_from_last p0014 space pn-begda pn-endda.

Check post code


CHECK p0006-pstlz IN so_pcode. "cp

Post code
wa_output-postcode = p0006-pstlz.

Personnel number
wa_output-pernr = pernr-pernr.

Personnel title
SELECT SINGLE atext
FROM t522t
INTO wa_output-anredtxt
WHERE sprsl EQ sy-langu AND
anred EQ p0002-anred.

First name
wa_output-fname = p0002-vorna.

Last name
wa_output-lname = p0002-nachn.

Organizational Unit text (dept)


SELECT SINGLE orgtx
FROM t527x
INTO wa_output-orgtx
WHERE sprsl EQ sy-langu AND
orgeh EQ p0001-orgeh AND
endda GE sy-datum.

FTE
wa_output-fte = p0008-bsgrd.

Parking / travel deducted?


CASE p0014-lgart.

WHEN '7180' OR '7181' OR '7182'.


wa_output-parking = text-002.
WHEN '7183'.
wa_output-parking = text-001.
WHEN '7171' OR '7172' or '7173' or '7174' or
'7175' or '7176' or '7177' or '7178'.
wa_output-parking = text-003.
ENDCASE.

Payslip Address
SELECT SINGLE sachn
FROM t526
INTO wa_output-payslip
WHERE werks EQ p0001-werks AND
sachx EQ p0001-sacha.
PROVIDE * from p0105 between pn-begda and pn-endda.

Telephone numbers
if p0105-usrty = '0020'.
wa_output-telno = p0105-usrid_long.
endif.

Email address
if p0105-usrty = 'MAIL'.
wa_output-email = p0105-usrid_long.
endif.
ENDPROVIDE.

Das könnte Ihnen auch gefallen