2008 May 22 11:20 AM
2008 May 22 11:35 AM
Hi,
Refer to the link below:
http://www.saptechnical.com/Tutorials/HRABAP/HRABAPMain.htm
Hope this helps.
Reward if helpful.
Regards,
Sipra
one simple program in hr-abap please
2008 May 22 11:27 AM
once check this program
----
REPORT Z_HR_RP_EMP_ADDRESS_DETAILS NO STANDARD PAGE HEADING .
&----
*& Global Variables
&----
TABLES : PERNR.
TYPE-POOLS : SLIS .
INFOTYPES : 0006 .
DATA : G_PRG TYPE SY-CPROG ,
G_LOGO(20).
&----
*& Structure Declaration
&----
**-- Structure for Infotype 0006.
TYPES : BEGIN OF TY_PA0006,
PERNR TYPE PERSNO , "Personnel number
SUBTY TYPE SUBTY , "Subtype
ENDDA TYPE ENDDA , "End Date
BEGDA TYPE BEGDA , "Start Date
ANSSA TYPE ANSSA , "Address Record Type
STEXT TYPE STEXT , "Address Record Type Text
NAME2 TYPE PAD_CONAM , "C/O name
STRAS TYPE PAD_STRAS , "Street and House Number
LOCAT TYPE PAD_LOCAT , "2nd Address Line
PSTLZ TYPE PSTLZ , "Postal Code
ORT01 TYPE PAD_ORT01 , "City
ORT02 TYPE PAD_ORT02 , "District
STATE TYPE REGIO , "Region (State, Province, County)
LAND1 TYPE LAND1 , "Country Key
TELNR TYPE TELNR , "Telephone Number
ENTKM TYPE ENTKM , "Distance in Kilometers
WKWNG TYPE WKWNG , "Company Housing
END OF TY_PA0006 .
&----
*& InternalTable AND WorkArea Declaration
&----
**-- Internal table Declaration for Infotype 0006.
DATA : IT_PA0006 TYPE STANDARD TABLE OF TY_PA0006 INITIAL SIZE 0 WITH HEADER LINE.
**-- Internal table Declaration FOR Address type Text.
DATA : BEGIN OF IT_T591S OCCURS 0,
SUBTY TYPE SUBTY , "Subtype
STEXT TYPE STEXT , "Text for Address
END OF IT_T591S .
**-- Workarea declaration.
DATA : WA_PA0006 LIKE LINE OF IT_PA0006,
WA_T591S LIKE LINE OF IT_T591S .
&----
*& ALV Declaration
&----
**-- Fieldcatalog Declaration.
DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FCAT TYPE SLIS_FIELDCAT_ALV ,
**-- Events Declaration.
IT_EVENTS TYPE SLIS_T_EVENT ,
WA_EVENTS TYPE SLIS_ALV_EVENT.
&----
*& Selection-Screen Declaration
&----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME .
PARAMETERS : P_SUBTY TYPE RP50G-SUBTY.
SELECTION-SCREEN END OF BLOCK B1 .
&----
*& At Selection-Screen Declaration
&----
AT SELECTION-SCREEN ON P_SUBTY.
DATA : LV_SUBTY LIKE RP50G-SUBTY.
SELECT SINGLE SUBTY FROM PA0006 INTO LV_SUBTY WHERE SUBTY = P_SUBTY.
IF SY-SUBRC <> 0.
MESSAGE E002(ZSRSL_MSGCLASS) WITH 'Enter the Correct Subtype'(001).
ENDIF.
&----
*& Start-Of-Selection Declaration
&----
START-OF-SELECTION.
***-- GET Event to Retrive all data for defined INFOTYPE 0006.
GET PERNR .
***--Macro to Retrive Last record for the Infotype 0006.
RP_PROVIDE_FROM_LAST P0006 P_SUBTY PN-BEGDA PN-ENDDA.
***--Moving data from Infotype 0006 to Internal Table IT_PA0006.
WA_PA0006-PERNR = P0006-PERNR . "Personnel number
WA_PA0006-SUBTY = P_SUBTY . "Subtype
WA_PA0006-ENDDA = P0006-ENDDA . "End Date
WA_PA0006-BEGDA = P0006-BEGDA . "Start Date
WA_PA0006-ANSSA = P0006-ANSSA . "Address Record Type
WA_PA0006-NAME2 = P0006-NAME2 . "C/O name
WA_PA0006-STRAS = P0006-STRAS . "Street and House Number
WA_PA0006-LOCAT = P0006-LOCAT . "2nd Address Line
WA_PA0006-PSTLZ = P0006-PSTLZ . "Postal Code
WA_PA0006-ORT01 = P0006-ORT01 . "City
WA_PA0006-ORT02 = P0006-ORT02 . "District
WA_PA0006-STATE = P0006-STATE . "Region (State, Province, County)
WA_PA0006-LAND1 = P0006-LAND1 . "Country Key
WA_PA0006-TELNR = P0006-TELNR . "Telephone Number
WA_PA0006-ENTKM = P0006-ENTKM . "Distance in Kilometers
WA_PA0006-WKWNG = P0006-WKWNG . "Company Housing
APPEND WA_PA0006 TO IT_PA0006.
CLEAR WA_PA0006.
***-- Perform to Get Address Text.
PERFORM ADDRESS_TEXT.
&----
*& End-Of-Selection Declaration
&----
END-OF-SELECTION.
***-- Perform to Get Final Output.
PERFORM FINAL_OUTPUT.
***-- Perform to Get Event.
PERFORM EVENT.
****-- Perform to Get Fieldcatalog.
PERFORM FIELDCATALOG.
***-- Perform to display the Address Details of Employee.
PERFORM DISPLAY_DETAILS.
&----
*& Form ADDRESS_TEXT
&----
text
----
FORM ADDRESS_TEXT .
SELECT SUBTY
STEXT
FROM T591S
INTO TABLE IT_T591S
FOR ALL ENTRIES IN IT_PA0006
WHERE SUBTY = IT_PA0006-ANSSA
AND INFTY = '0006'
AND SPRSL = 'EN'.
ENDFORM. " ADDRESS_TEXT
&----
*& Form FINAL_OUTPUT
&----
text
----
FORM FINAL_OUTPUT .
LOOP AT IT_PA0006 INTO WA_PA0006.
READ TABLE IT_T591S INTO WA_T591S WITH KEY SUBTY = WA_PA0006-ANSSA.
WA_PA0006-STEXT = WA_T591S-STEXT.
MODIFY IT_PA0006 FROM WA_PA0006.
CLEAR WA_PA0006.
ENDLOOP.
ENDFORM. " FINAL_OUTPUT
&----
*& Form event
&----
text
----
FORM EVENT .
CLEAR IT_EVENTS.
WA_EVENTS-NAME = 'TOP_OF_PAGE'.
WA_EVENTS-FORM = 'HEADING_DETAILS'.
APPEND WA_EVENTS TO IT_EVENTS.
ENDFORM. " event
&----
*& Form HEADING_DETAILS
&----
text
----
FORM HEADING_DETAILS .
DATA : IT_LISTHEADER TYPE SLIS_T_LISTHEADER,
WA_LISTHEADER LIKE LINE OF IT_LISTHEADER.
CLEAR WA_LISTHEADER.
WA_LISTHEADER-TYP = 'H'.
WA_LISTHEADER-INFO = 'Employee Address Details'(002).
APPEND WA_LISTHEADER TO IT_LISTHEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
I_LOGO = 'Z_SRSL_LOGO'.
ENDFORM. " HEADING_DETAILS
&----
*& Form FIELDCATALOG
&----
text
----
FORM FIELDCATALOG .
***-- Perform to Get Fieldcatalog.
PERFORM GET_FIELDCATALOG USING : '1' 'PERNR' 'Personnel Number'(003) ,
'2' 'SUBTY' 'Subtype'(004),
'3' 'BEGDA' 'Start Date'(005),
'4' 'ENDDA' 'End Date'(006),
'5' 'STEXT' 'Address Record Type'(007),
'6' 'NAME2' 'C/O name'(008),
'7' 'STRAS' 'Street and House Number'(009),
'8' 'LOCAT' '2nd Address Line'(010),
'9' 'PSTLZ' 'Postal Code'(011),
'10' 'ORT01' 'City'(012),
'11' 'ORT02' 'District'(013),
'12' 'STATE' 'Region (State)'(014),
'13' 'LAND1' 'Country Key'(015),
'14' 'TELNR' 'Telephone Number'(016),
'15' 'ENTKM' 'Distance in Kilometers'(017),
'16' 'WKWNG' 'Company Housing'(018).
ENDFORM. " FIELDCATALOG
&----
*& Form GET_FIELDCATALOG
&----
text
----
FORM GET_FIELDCATALOG USING : G_COL TYPE CHAR2
G_NAME TYPE CHAR10
G_TEXT TYPE CHAR30.
WA_FCAT-COL_POS = G_COL.
WA_FCAT-FIELDNAME = G_NAME.
WA_FCAT-SELTEXT_M = G_TEXT.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
ENDFORM. " GET_FIELDCATALOG
&----
*& Form DISPLAY_DETAILS
&----
text
----
FORM DISPLAY_DETAILS .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
IT_FIELDCAT = IT_FCAT
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = IT_PA0006.
ENDFORM. " DISPLAY_DETAILS
rewrds if helpful
2008 May 22 11:28 AM
Hi,
PF the Below Code....
Reward points if helpful..
&----
*& Report ZPV003HR_ANIV_EMP
&----
REPORT zpv003hr_aniv_emp .
TABLES: pernr.
INFOTYPES: 0002,
0001.
DATA: age TYPE d,
serv TYPE d,
curdate TYPE d.
DATA: years TYPE d,
enddate TYPE d .
DATA: BEGIN OF int_empinfo OCCURS 0,
pernr LIKE p0002-pernr,
nachn LIKE p0002-nachn,
vorna LIKE p0002-vorna,
gbdat LIKE p0002-gbdat,
begda LIKE p0001-begda,
emp_age TYPE d,
emp_serv TYPE d,
END OF int_empinfo.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
PARAMETERS: 5_years RADIOBUTTON GROUP g1 DEFAULT 'X',
10_years RADIOBUTTON GROUP g1,
15_years RADIOBUTTON GROUP g1.
*curdate type d DEFAULT '00050101' .
SELECTION-SCREEN END OF BLOCK block1.
START-OF-SELECTION .
IF 5_years = 'X'.
curdate = '00050101'.
ELSEIF 10_years = 'X'.
curdate = '00100101'.
ELSEIF 15_years = 'X'.
curdate = '00150101'.
ENDIF.
GET pernr.
PERFORM get_0002.
PERFORM get_0001.
IF int_empinfo-emp_serv NE '00000000'.
APPEND int_empinfo.
ENDIF.
END-OF-SELECTION.
IF int_empinfo[] IS INITIAL.
WRITE:/ 'NO EMPLOYEE WITH', curdate+2(2), 'YEARS OF SERVICE' COLOR 6
.
ENDIF.
PERFORM write_empinfo.
&----
*& Form get_0002
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_0002 .
rp-provide-from-last p0002 space pn-begda pn-endda.
IF pnp-sw-found EQ '1'. "record found
age = sy-datum - p0002-gbdat.
MOVE:
p0002-pernr TO int_empinfo-pernr,
p0002-vorna TO int_empinfo-vorna,
p0002-nachn TO int_empinfo-nachn,
p0002-gbdat TO int_empinfo-gbdat,
age TO int_empinfo-emp_age.
ELSE.
REJECT.
ENDIF.
ENDFORM. " get_0002
&----
*& Form write_empinfo
&----
text
----
--> p1 text
<-- p2 text
----
FORM write_empinfo .
LOOP AT int_empinfo.
WRITE:/
int_empinfo-pernr,
20 int_empinfo-nachn,
35 int_empinfo-vorna,
50 int_empinfo-gbdat,
75 int_empinfo-emp_age+2(2),
85 int_empinfo-emp_serv+2(2) .
ENDLOOP.
ENDFORM. " write_empinfo
&----
*& Form get_1001
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_0001 .
rp-provide-from-last p0001 space pn-begda pn-endda.
IF pnp-sw-found EQ '1'. "record found
enddate = p0001-endda .
years = sy-datum - p0001-begda.
IF years > curdate AND enddate >= '99991231' .
MOVE:
years TO int_empinfo-emp_serv.
ENDIF.
ELSE.
REJECT.
ENDIF.
ENDFORM. " get_1001
TOP-OF-PAGE.
WRITE:/
'EMP_PERNR',
20 'LAST_NAME',
35 'FIRST_NAME',
50 'DOB',
75 'EMP_AGE',
85 'EMP_SERVICE' .
ULINE.
2008 May 22 11:35 AM
Hi,
Refer to the link below:
http://www.saptechnical.com/Tutorials/HRABAP/HRABAPMain.htm
Hope this helps.
Reward if helpful.
Regards,
Sipra
2008 Jun 12 5:48 AM
Hi Raghunandan,
Please check this link
http://www.sapdevelopment.co.uk/programs/custom/zp_postcode.htm
REPORT zp_postcode.
type-pools: slis. "ALV Declarations
NODES: pernr.
INFOTYPES: 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.
append wa_output to it_output.
clear: wa_output.
************************************************************************
*END-OF-SELECTION.
END-OF-SELECTION.
describe table it_output lines gd_lines.
if gd_lines gt 0.
perform build_fieldcatalog.
perform build_layout.
perform display_alv_report.
else.
message i003(zp) with 'No records found'.
endif.
*&---------------------------------------------------------------------*
*& Form PROGRESS_INDICATOR
*&---------------------------------------------------------------------*
* Displays progress indicator on SAP screen
*----------------------------------------------------------------------*
form progress_indicator using p_text.
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
* PERCENTAGE = 0
text = p_text.
endform. " PROGRESS_INDICATOR
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
* Build Fieldcatalog for ALV Report
*----------------------------------------------------------------------*
form build_fieldcatalog.
fieldcatalog-fieldname = 'PERNR'.
fieldcatalog-seltext_m = 'Personnel No.'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
* fieldcatalog-emphasize = 'X'.
* fieldcatalog-key = 'X'.
* fieldcatalog-do_sum = 'X'.
* fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'ANREDTXT'.
fieldcatalog-seltext_m = 'Title'.
fieldcatalog-col_pos = 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'FNAME'.
fieldcatalog-seltext_m = 'First Name'.
fieldcatalog-col_pos = 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'LNAME'.
fieldcatalog-seltext_m = 'Last Name'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'ORGTX'.
fieldcatalog-seltext_m = 'Department'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'FTE'.
fieldcatalog-seltext_m = 'FTE'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PARKING'.
fieldcatalog-seltext_m = 'Parking/Metrocard'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PAYSLIP'.
fieldcatalog-seltext_m = 'Payslip Add.'.
fieldcatalog-col_pos = 7.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'TELNO'.
fieldcatalog-seltext_m = 'Telephone'.
fieldcatalog-col_pos = 8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'EMAIL'.
fieldcatalog-seltext_m = 'E-mail'.
fieldcatalog-col_pos = 9.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'POSTCODE'.
fieldcatalog-seltext_m = 'Post code'.
fieldcatalog-col_pos = 10.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* Build layout for ALV grid report
*----------------------------------------------------------------------*
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-zebra = 'X'.
endform. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
* Display report using ALV grid
*----------------------------------------------------------------------*
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_output
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. " DISPLAY_ALV_REPORTBest regards,
raam
2008 Jul 14 7:47 AM
hai ,
i am sorry scenario means howz requirement
how we solve them , outbound interface means hr is sensitive data how we secure and how to send and how we receive plz let
me will u plz send me some programs to better understand
thanks&Regards,
bhushan.A
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |