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
DO12TIMES 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 ISINITIAL.
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[] ISNOTINITIAL.
SORT p0000 BY endda DESCENDING.
READTABLE p0000 INTO lw_p0000 INDEX1.
w_final-pernr = lw_p0000-pernr. "Employee number
w_final-begda = lw_p0000-begda. "Start date
READTABLE i_t529t INTO w_t529t
WITHKEY massn = lw_p0000-massn
BINARYSEARCH.
IF sy-subrc = 0.
w_final-mntxt = w_t529t-mntxt. "Action text
ENDIF.
IF lw_p0000-massg ISNOTINITIALAND lw_p0000-massn ISNOTINITIAL.
CLEAR w_t530t.
*&---------------------------------------------------------------------*
*& Populate Action reason text
READTABLE i_t530t INTO w_t530t
WITHKEY massn = lw_p0000-massn
massg = lw_p0000-massg
BINARYSEARCH.
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.
READTABLE i_t513s INTO w_t513s
WITHKEY stell = p0001-stell
BINARYSEARCH.
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.
WHENOTHERS.
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 ISNOTINITIAL.
CLEAR w_t548t.
*&---------------------------------------------------------------------*
*& Populate date text
READTABLE i_t548t INTO w_t548t
WITHKEY 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 ISNOTINITIAL.
PERFORM build_fieldcatalog.
PERFORM set_layout.
PERFORM display_alv_report.
ELSE.
MESSAGEtext-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
BEGINOF t_t548t,
datar TYPE datar,
dtext TYPE datax,
ENDOF t_t548t,
*&---------------------------------------------------------------------*
*& Personnel Action Texts
BEGINOF t_t529t,
massn TYPE massn, "Action Type
mntxt TYPE mntxt, "Name of Action Type
ENDOF t_t529t,
*&---------------------------------------------------------------------*
*& Reason for Action Texts
BEGINOF t_t530t,
massn TYPE massn, "Action Type
massg TYPE massg, "Reason for Action
mgtxt TYPE mgtxt, "Name of reason for action
ENDOF t_t530t,
*&---------------------------------------------------------------------*
*& Job Titles
BEGINOF t_t513s,
stell TYPE stell, "Job
stltx TYPE stltx, "Job Title
begda TYPE begda, "Start Date
endda TYPE endda, "End Date
ENDOF t_t513s,
*&---------------------------------------------------------------------*
*& Final table
BEGINOF 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,
ENDOF t_final.
*&**********************************************************************
*& Data
*&**********************************************************************
DATA: i_t529t TYPESTANDARDTABLEOF t_t529t,
i_t530t TYPESTANDARDTABLEOF t_t530t,
i_t513s TYPESTANDARDTABLEOF t_t513s,
i_final TYPESTANDARDTABLEOF t_final,
i_t548t TYPESTANDARDTABLEOF t_t548t.
DATA: i_fieldcatalog TYPETABLEOF 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 TYPEiVALUE 1.
*&**********************************************************************
*& Constants
*&**********************************************************************
CONSTANTS : c_x TYPEcVALUE'X',
c_h TYPEcVALUE'H',
c_i TYPEcVALUE'I',
c_s TYPEcVALUE'S',
c_1 TYPEcVALUE'1',
c_2 TYPEcVALUE'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-019text-001,
text-020text-018,
text-021text-002,
text-022text-003,
text-023text-004,
text-024text-005,
text-025text-006,
text-026text-007,
text-027text-008,
text-028text-009,
text-029text-010,
text-030text-011,
text-031text-012,
text-032text-013,
text-033text-014,
text-034text-015,
text-035text-016,
text-036text-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---------------------------------
CALLFUNCTION'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.
MESSAGEID 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 TYPETABLEOF slis_listheader,
lw_header TYPE slis_listheader,
lv_count TYPEi,
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.
DESCRIBETABLE 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 USINGEDITMASK'__/__/____'.
lw_header-info = lv_date.
lw_header-key = text-044.
lw_header-typ = c_s.
APPEND lw_header TO li_header.
CALLFUNCTION'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
INTOTABLE i_t548t
WHERE sprsl = sy-langu AND ( datar = c_u1 OR datar = c_16 ).
*&---------------------------------------------------------------------*
*& Get Job title
SELECT stell stltx endda begda
FROM t513s
INTOTABLE i_t513s
WHERE sprsl = sy-langu.
*&---------------------------------------------------------------------
*& Action Texts
SELECT massn mntxt
INTOTABLE i_t529t
FROM t529t
WHERE sprsl = sy-langu.
*&---------------------------------------------------------------------
*& Reason for Action Texts
SELECT massn massg mgtxt
INTOTABLE i_t530t
FROM t530t
WHERE sprsl = sy-langu.
ENDFORM. " GET_TEXTS