Employee Hiring Details using PNP
MAIN
************************************************************************
* Object Name : REPORT ZHCM_ASMNT1PNP. *
* Author/Company Name : Krishnakant Joshi / *
* Transport Request *
* Creation Date * 01/21/2013
************************************************************************
* Description: * Employee hiring details
************************************************************************
* Dependencies *
************************************************************************
* Modification History *
************************************************************************
* Date Programmer Client Ref No. Description Correction *
************************************************************************
REPORT zhcm_asmnt1pnp.
*&**********************************************************************
*& INCLUDE
*&**********************************************************************
INCLUDE : zhcm_asmnt1pnp_top, “Global Types and Data
zhcm_asmnt1pnp_form. “Subroutines
*&**********************************************************************
*& INITIALIZATION.
*&**********************************************************************
INITIALIZATION.
v_repid = sy-repid.
*&**********************************************************************
*& AT SELECTION-SCREEN
*&**********************************************************************
AT SELECTION-SCREEN.
*&**********************************************************************
*& START-OF-SELECTION
*&**********************************************************************
START-OF-SELECTION.
PERFORM get_texts.
SORT: i_t513s BY stell,
i_t530t BY massn massg,
i_t529t BY massn.
*&**********************************************************************
*& GET PERNR.
*&**********************************************************************
GET pernr.
DATA : w_final TYPE t_final,
v_dar TYPE datar,
v_dat TYPE dardt.
*&———————————————————————*
*& Local data for prosessing
DATA : w_t529t TYPE t_t529t,
w_t530t TYPE t_t530t,
w_t513s TYPE t_t513s,
w_t548t TYPE t_t548t,
lw_p0000 TYPE p0000.
*&———————————————————————
*& Get Date specifications
rp-provide–from–last p0041 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
*&———————————————————————*
*& Do loop to check for hire date or original hire date
DO 12 TIMES VARYING v_dar FROM p0041-dar01 NEXT
p0041-dar02
VARYING v_dat FROM p0041-dat01 NEXT
p0041-dat02.
*&———————————————————————*
*& Check for Original date
IF v_dar = c_16.
w_final-dat01 = v_dat.
w_final-dtext = v_dar.
*&———————————————————————*
*& Check for hire date
ELSEIF v_dar = c_u1.
w_final-dat01 = v_dat.
w_final-dtext = v_dar.
EXIT.
ENDIF.
CLEAR: v_dar, v_dat.
ENDDO.
IF w_final-dat01 IS INITIAL.
REJECT.
ENDIF.
ENDIF.
*&———————————————————————
*& Get action data
rp-provide–from–last p0000 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
DELETE p0000[] WHERE stat2 <> 3.
IF p0000[] IS NOT INITIAL.
SORT p0000 BY endda DESCENDING.
READ TABLE p0000 INTO lw_p0000 INDEX 1.
w_final-pernr = lw_p0000-pernr. “Employee number
w_final-begda = lw_p0000-begda. “Start date
READ TABLE i_t529t INTO w_t529t
WITH KEY massn = lw_p0000-massn
BINARY SEARCH.
IF sy-subrc = 0.
w_final-mntxt = w_t529t-mntxt. “Action text
ENDIF.
IF lw_p0000-massg IS NOT INITIAL AND lw_p0000-massn IS NOT INITIAL.
CLEAR w_t530t.
*&———————————————————————*
*& Populate Action reason text
READ TABLE i_t530t INTO w_t530t
WITH KEY massn = lw_p0000-massn
massg = lw_p0000-massg
BINARY SEARCH.
IF sy-subrc = 0.
w_final-mgtxt = w_t530t-mgtxt.“Action reason text
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*&———————————————————————
*& Get organizational assignments
rp-provide–from–last p0001 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-werks = p0001-werks.
w_final-orgeh = p0001-orgeh.
w_final-kostl = p0001-kostl.
*&———————————————————————*
*& Populate job text
CLEAR w_t513s.
READ TABLE i_t513s INTO w_t513s
WITH KEY stell = p0001-stell
BINARY SEARCH.
IF sy-subrc = 0.
w_final-stltx = w_t513s-stltx.
ENDIF.
ENDIF.
*&———————————————————————
*& Get Personal data
rp-provide–from–last p0002 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-vorna = p0002-vorna. “First name
w_final-nachn = p0002-nachn. “Last name
CASE p0002-gesch. “Gender
WHEN c_1.
w_final-gesch = text–037.
WHEN c_2.
w_final-gesch = text–038.
WHEN OTHERS.
w_final-gesch = text–039.
ENDCASE.
w_final-gbdep = p0002-gbdep.
w_final-gbdat = p0002-gbdat.
ENDIF.
*&———————————————————————
*& Get Address details
rp-provide–from–last p0006 c_1 pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-pstlz = p0006-pstlz.
ENDIF.
*&———————————————————————
*& Get Basic Pay details
rp-provide–from–last p0008 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-ansal = p0008-ansal. “Annual salary
ENDIF.
*&———————————————————————
*& Get Email details
rp-provide–from–last p0105 c_0010 pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-usrid_long = p0105-usrid_long. “Email
ENDIF.
*&———————————————————————
*& Append work area
IF w_final-dat01 IS NOT INITIAL.
CLEAR w_t548t.
*&———————————————————————*
*& Populate date text
READ TABLE i_t548t INTO w_t548t
WITH KEY datar = w_final-dtext.
IF sy-subrc = 0.
w_final-dtext = w_t548t-dtext. “Date text
ENDIF.
APPEND w_final TO i_final.
CLEAR w_final.
ENDIF.
*&**********************************************************************
*& END-OF-SELECTION
*&**********************************************************************
END–OF-SELECTION.
IF i_final IS NOT INITIAL.
PERFORM build_fieldcatalog.
PERFORM set_layout.
PERFORM display_alv_report.
ELSE.
MESSAGE text–046 TYPE c_i.
ENDIF.
TOP
*&———————————————————————*
*& Include ZHCM_ASMNT1PNP_TOP
*&———————————————————————*
TYPE-POOLS: slis.
TABLES: pernr.
INFOTYPES: 0000, 0001, 0002, 0006, 0008, 0041, 0105.
*&———————————————————————*
TYPES:
*&———————————————————————*
*& Date text
BEGIN OF t_t548t,
datar TYPE datar,
dtext TYPE datax,
END OF t_t548t,
*&———————————————————————*
*& Personnel Action Texts
BEGIN OF t_t529t,
massn TYPE massn, “Action Type
mntxt TYPE mntxt, “Name of Action Type
END OF t_t529t,
*&———————————————————————*
*& Reason for Action Texts
BEGIN OF t_t530t,
massn TYPE massn, “Action Type
massg TYPE massg, “Reason for Action
mgtxt TYPE mgtxt, “Name of reason for action
END OF t_t530t,
*&———————————————————————*
*& Job Titles
BEGIN OF t_t513s,
stell TYPE stell, “Job
stltx TYPE stltx, “Job Title
begda TYPE begda, “Start Date
endda TYPE endda, “End Date
END OF t_t513s,
*&———————————————————————*
*& Final table
BEGIN OF t_final,
pernr TYPE pernr,
begda TYPE begda,
mntxt TYPE mntxt,
mgtxt TYPE mgtxt,
vorna TYPE pad_vorna,
nachn TYPE pad_nachn,
gesch TYPE char20,
gbdep TYPE gbdep,
pstlz TYPE pstlz_hr,
werks TYPE persa,
stltx TYPE stltx,
orgeh TYPE orgeh,
kostl TYPE kostl,
gbdat TYPE gbdat,
usrid_long TYPE comm_id_long,
dtext TYPE datax,
dat01 TYPE dardt,
ansal TYPE ansal,
END OF t_final.
*&**********************************************************************
*& Data
*&**********************************************************************
DATA: i_t529t TYPE STANDARD TABLE OF t_t529t,
i_t530t TYPE STANDARD TABLE OF t_t530t,
i_t513s TYPE STANDARD TABLE OF t_t513s,
i_final TYPE STANDARD TABLE OF t_final,
i_t548t TYPE STANDARD TABLE OF t_t548t.
DATA: i_fieldcatalog TYPE TABLE OF slis_fieldcat_alv,
w_fieldcatalog TYPE slis_fieldcat_alv,
v_repid LIKE sy-repid,
v_gridtitle TYPE lvc_title,
w_layout TYPE slis_layout_alv.
DATA : v_colpos TYPE i VALUE 1.
*&**********************************************************************
*& Constants
*&**********************************************************************
CONSTANTS : c_x TYPE c VALUE ‘X’,
c_h TYPE c VALUE ‘H’,
c_i TYPE c VALUE ‘I’,
c_s TYPE c VALUE ‘S’,
c_1 TYPE c VALUE ‘1’,
c_2 TYPE c VALUE ‘2’,
c_u1 TYPE char02 VALUE ‘U1’,
c_16 TYPE char02 VALUE ’16’,
c_0010 TYPE char04 VALUE ‘0010’.
FORM
*&———————————————————————*
*& Include ZHCM_ASMNT1PNP_FORM
*&———————————————————————*
*———————————————————————-*
* Form build_fieldcatalog *
*———————————————————————-*
* This form is used set field catalog
*———————————————————————-*
FORM build_fieldcatalog .
* SET Field Catalog
PERFORM set_fieldcatalog USING : text–019 text–001,
text–020 text–018,
text–021 text–002,
text–022 text–003,
text–023 text–004,
text–024 text–005,
text–025 text–006,
text–026 text–007,
text–027 text–008,
text–028 text–009,
text–029 text–010,
text–030 text–011,
text–031 text–012,
text–032 text–013,
text–033 text–014,
text–034 text–015,
text–035 text–016,
text–036 text–017.
ENDFORM. ” BUILD_FIELDCATALOG
*———————————————————————-*
* Form display_alv_report *
*———————————————————————-*
* This form is used to display report
*———————————————————————-*
FORM display_alv_report .
v_gridtitle = text–042.
* ALV GRID DISPLAY Function Module call———————————
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = v_repid
i_callback_top_of_page = ‘TOP_OF_PAGE’
it_fieldcat = i_fieldcatalog
is_layout = w_layout
i_grid_title = v_gridtitle
TABLES
t_outtab = i_final
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
*———————————————————————-*
* Form set_fieldcatalog *
*———————————————————————-*
* This form is used to set field catalog
*———————————————————————-*
FORM set_fieldcatalog USING p_field type slis_fieldname
p_seltext type SCRTEXT_M .
CLEAR w_fieldcatalog.
w_fieldcatalog-fieldname = p_field.
w_fieldcatalog-seltext_m = p_seltext.
w_fieldcatalog-col_pos = v_colpos.
w_fieldcatalog-do_sum = c_x.
APPEND w_fieldcatalog TO i_fieldcatalog.
v_colpos = v_colpos + 1.
ENDFORM. ” set_fieldcatalog
*———————————————————————-*
* Form set_layout *
*———————————————————————-*
* This form is used to set report layout
*———————————————————————-*
FORM set_layout.
w_layout-no_hotspot = c_x.
w_layout-zebra = c_x.
w_layout-colwidth_optimize = c_x.
ENDFORM. “set_layout
*———————————————————————-*
* top_of_page *
*———————————————————————-*
* This form is used to set top of page
*———————————————————————-*
FORM top_of_page.
DATA : li_header TYPE TABLE OF slis_listheader,
lw_header TYPE slis_listheader,
lv_count TYPE i,
lv_date TYPE char10.
lw_header-info = text–042.
lw_header-key = text–045.
lw_header-typ = c_h.
APPEND lw_header TO li_header.
CLEAR lw_header.
DESCRIBE TABLE i_final LINES lv_count.
WRITE lv_count TO lw_header-info.
“lw_header-info = lv_date.
lw_header-key = text–043.
lw_header-typ = c_s.
APPEND lw_header TO li_header.
CLEAR lw_header.
WRITE: sy-datum TO lv_date USING EDIT MASK ‘__/__/____’.
lw_header-info = lv_date.
lw_header-key = text–044.
lw_header-typ = c_s.
APPEND lw_header TO li_header.
CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’
EXPORTING
it_list_commentary = li_header.
ENDFORM. “TOP_OF_PAGE
*&———————————————————————*
*& Form GET_TEXTS
*&———————————————————————*
* text
*———————————————————————-*
* –> p1 text
* <– p2 text
*———————————————————————-*
FORM get_texts .
*&———————————————————————*
*& Get Date text
SELECT datar dtext
FROM t548t
INTO TABLE i_t548t
WHERE sprsl = sy-langu AND ( datar = c_u1 OR datar = c_16 ).
*&———————————————————————*
*& Get Job title
SELECT stell stltx endda begda
FROM t513s
INTO TABLE i_t513s
WHERE sprsl = sy-langu.
*&———————————————————————
*& Action Texts
SELECT massn mntxt
INTO TABLE i_t529t
FROM t529t
WHERE sprsl = sy-langu.
*&———————————————————————
*& Reason for Action Texts
SELECT massn massg mgtxt
INTO TABLE i_t530t
FROM t530t
WHERE sprsl = sy-langu.
ENDFORM. ” GET_TEXTS