Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

abap-hr

Former Member
0 Likes
1,157

one simple program in hr-abap please

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,026

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

5 REPLIES 5
Read only

Former Member
0 Likes
1,026

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

Read only

Former Member
0 Likes
1,026

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.

Read only

Former Member
0 Likes
1,027

Hi,

Refer to the link below:

http://www.saptechnical.com/Tutorials/HRABAP/HRABAPMain.htm

Hope this helps.

Reward if helpful.

Regards,

Sipra

Read only

Former Member
0 Likes
1,026

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_REPORT

Best regards,

raam

Read only

Former Member
0 Likes
1,026

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