Académique Documents
Professionnel Documents
Culture Documents
* ABAP Name
: ZIHR_R400_POS_MISS_ATTRIBUTES
*
* RICEF Object ID: R400
*
* Developer
: TejaVardhan Reddy
*
* Date
: 03/02/2012
*
* Description
: Positions Missing Attributes
*
* User Area
: Human Resources
*
*&---------------------------------------------------------------------*
* Program Change Log:
*&---------------------------------------------------------------------*
* Ver Trans.Req Name
Date
Reason for change
*
* 1 HIDK905531 Teja
03/02/2012 Initial
*
*&---------------------------------------------------------------------*
REPORT zihr_r400_pos_miss_attributes
MESSAGE-ID zhcm.
INCLUDE zihr_r400_pos_miss_attri_top.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_pos-low.
PERFORM sub_f4_help_pos. " Get all positions
START-OF-SELECTION.
PERFORM main. "Main form
*&---------------------------------------------------------------------*
*&
Form MAIN
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM main.
DATA:
lt_final
TYPE ty_t_final,
lt_hrp1001
TYPE ty_t_hrp1001,
lt_pos
TYPE ty_t_pos,
lt_hrp1013
TYPE ty_t_hrp1013,
lt_hrp1008
TYPE ty_t_hrp1008.
PERFORM get_positions CHANGING lt_pos.
IF lt_pos IS NOT INITIAL.
PERFORM read_1001 USING lt_pos
CHANGING lt_hrp1001.
PERFORM read_1013 USING lt_pos
CHANGING lt_hrp1013.
PERFORM read_1008 USING lt_pos
CHANGING lt_hrp1008.
PERFORM get_final_data
USING
lt_pos lt_hrp1013 lt_hrp1008 lt_hrp1001
CHANGING lt_final.
PERFORM output USING lt_final.
ENDIF.
ENDFORM.
" MAIN
*&---------------------------------------------------------------------*
*&
Form SUB_F4_HELP_POS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM sub_f4_help_pos .
DATA: f4_loc_objec_org TYPE TABLE OF objec,
sobid
TYPE sobid,
END OF ty_holder,
BEGIN OF ty_pernr_tmp,
pernr
TYPE pernr_d,
END OF ty_pernr_tmp,
BEGIN OF ty_pernrs,
pernr
TYPE pernr_d,
ename
TYPE emnam,
END OF ty_pernrs.
DATA:
ls_pos
TYPE ty_pos,
ls_hrp1013
TYPE ty_hrp1013,
ls_hrp1008
TYPE ty_hrp1008,
ls_final
TYPE ty_final,
ls_hrp1001
TYPE ty_hrp1001,
ls_job1001
TYPE ty_hrp1001,
lt_holder
TYPE STANDARD TABLE OF ty_holder,
lt_pernrs
TYPE STANDARD TABLE OF ty_pernrs,
lt_pernr_tmp
TYPE STANDARD TABLE OF ty_pernr_tmp,
ls_pernr_tmp
TYPE ty_pernr_tmp,
ls_pernrs
TYPE ty_pernrs,
ls_holder
TYPE ty_holder,
lv_flag.
SELECT objid
begda
endda
aedtm
uname
sclas
sobid FROM hrp1001
INTO TABLE lt_holder FOR ALL ENTRIES IN pt_pos
WHERE otype = 'S'
AND objid = pt_pos-objid
AND plvar = '01'
AND rsign = 'A'
AND relat = '008'
and begda LE p_rdate
AND endda GE p_rdate
AND sclas = 'P'.
IF sy-subrc EQ 0.
SORT lt_holder BY objid sclas sobid endda begda DESCENDING .
ENDIF.
IF NOT lt_holder IS INITIAL.
LOOP AT lt_holder INTO ls_holder.
ls_pernr_tmp-pernr = ls_holder-sobid.
APPEND ls_pernr_tmp TO lt_pernr_tmp.
ENDLOOP.
SELECT pernr
ename
FROM pa0001
INTO TABLE lt_pernrs
FOR ALL ENTRIES IN lt_pernr_tmp
WHERE pernr = lt_pernr_tmp-pernr
AND begda LE p_rdate
AND endda GE p_rdate.
ENDIF.
LOOP AT pt_pos INTO ls_pos.
ENDLOOP.
IF pt_final[] IS INITIAL.
MESSAGE i000 WITH 'No Data Found for the entered selection Criteria'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM.
" GET_FINAL_DATA
*&---------------------------------------------------------------------*
*&
Form OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_LT_FINAL text
*----------------------------------------------------------------------*
FORM output
USING pt_final TYPE ty_t_final.
DATA:
lt_fcat
TYPE slis_t_fieldcat_alv.
PERFORM:
build_fcat
USING
'OBJID' 'Position ID' CHANGING lt_fcat,
build_fcat
USING
'STEXT' 'Position Name' CHANGING lt_fcat,
build_fcat
USING
'PERNR' 'Employee No' CHANGING lt_fcat,
build_fcat
USING
'HNAME' 'Name of the holder' CHANGING lt_fcat,
build_fcat
USING
'BEGDA' 'Start Date' CHANGING lt_fcat,
build_fcat
USING
'DATUM' 'Changed on date' CHANGING lt_fcat,
build_fcat
USING
'UNAME' 'USERID' CHANGING lt_fcat,
build_fcat
USING
'PERSA' 'Personnel Area' CHANGING lt_fcat,
build_fcat
USING
'BTRTL' 'Personnel Sub Area' CHANGING lt_fcat,
build_fcat
USING
'PERSG' 'Employee Group' CHANGING lt_fcat,
build_fcat
USING
'PERSK' 'Employe Sub Group' CHANGING lt_fcat,
build_fcat
USING
'SHORT' 'Work Location' CHANGING lt_fcat,
build_fcat
USING
'BUKRS' 'Company Code' CHANGING lt_fcat,
build_fcat
USING
'STELL' 'JOB ID' CHANGING lt_fcat.
PERFORM alv_output USING lt_fcat pt_final.
ENDFORM.
" OUTPUT
*&---------------------------------------------------------------------*
*&
Form BUILD_FCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0513 text
*
-->P_0514 text
*
<--P_LT_FCAT text
*----------------------------------------------------------------------*
FORM build_fcat
USING
value(p_0513)
value(p_0514)
CHANGING
pt_fcat TYPE slis_t_fieldcat_alv.
DATA:
ls_fcat TYPE slis_fieldcat_alv.
ls_fcat-tabname = 'LT_FINAL'.
ls_fcat-fieldname = p_0513.
ls_fcat-seltext_l = p_0514.
APPEND ls_fcat TO pt_fcat.
ENDFORM.
" BUILD_FCAT
*&---------------------------------------------------------------------*
*&
Form ALV_OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_LT_FCAT text
*
-->P_PT_FINAL text
*----------------------------------------------------------------------*
FORM alv_output USING
pt_fcat TYPE slis_t_fieldcat_alv
pt_final TYPE ty_t_final.
DATA:
ls_layout
TYPE slis_layout_alv.
ls_layout-colwidth_optimize = 'X'.
ls_layout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program
= sy-repid
i_callback_top_of_page = 'TOP_OF_PAGE'
is_layout
= ls_layout
it_fieldcat
= pt_fcat
TABLES
t_outtab
= pt_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.
" ALV_OUTPUT
*&---------------------------------------------------------------------*
*&
Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM top_of_page.
* //Local Variable
DATA: lt_header TYPE slis_t_listheader,
lw_header TYPE slis_listheader,
lv_date TYPE char10,
lv_time TYPE char10,
lv_count TYPE char10.
* //Title
lw_header-typ = 'H'.
lw_header-info = 'Positions with Missing Attributes'.
APPEND lw_header TO lt_header.
CLEAR lw_header.
lw_header-typ = 'S'.
WRITE sy-datum TO lv_date.
CONCATENATE 'Run Date' lv_date INTO lw_header-info SEPARATED BY ' - '.
APPEND lw_header TO lt_header.
CLEAR lw_header.
lw_header-typ = 'S'.
WRITE sy-uzeit TO lv_time.
CONCATENATE 'Run time' lv_time INTO lw_header-info SEPARATED BY ' - '.
APPEND lw_header TO lt_header.
CLEAR lw_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = lt_header.
CLEAR: lv_date, lv_time.
ENDFORM.
"TOP_OF_PAGE