Termed employees with Benefits

37
* Tables Used : SELECT UPDATE INSERT DELETE JOIN * * t530t X * * t500p X * * t001p X * * t527x X * t5uca X * t5uce X * t5ucf X * t005u X * t74ga X * Includes : * * ZBHR_TERMEDWITHBENEFITS_top Global Data * * ZBHR_TERMEDWITHBENEFITS_scr Forms related to selection screen* * ZBHR_TERMEDWITHBENEFITS_frm Forms related to subroutines * *********************************************************************** * Dependencies *********************************************************************** * Modification History * *********************************************************************** * Date Programmer Cleint Ref No. Description Correction * * * *********************************************************************** REPORT zbhr_termedwithbenefits NO STANDARD PAGE HEADING . INCLUDE zbhr_termedwithbenefits_top . " Global data INCLUDE zbhr_termedwithbenefits_scr . " Screen elements INCLUDE zbhr_termedwithbenefits_frm . " Subroutines AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_treas . "F4 help for termination reason PERFORM f4_termination_reason . AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lreas . "F4 help for leave of absence reason PERFORM f4_loa_reason . AT SELECTION-SCREEN on p_treas . " validate termination reason

Transcript of Termed employees with Benefits

Page 1: Termed employees with Benefits

* Tables Used : SELECT UPDATE INSERT DELETE JOIN ** t530t X ** t500p X ** t001p X ** t527x X* t5uca X* t5uce X* t5ucf X* t005u X* t74ga X* Includes : ** ZBHR_TERMEDWITHBENEFITS_top Global Data ** ZBHR_TERMEDWITHBENEFITS_scr Forms related to selection screen** ZBHR_TERMEDWITHBENEFITS_frm Forms related to subroutines ************************************************************************* Dependencies************************************************************************ Modification History ************************************************************************* Date Programmer Cleint Ref No. Description Correction ** ************************************************************************

REPORT zbhr_termedwithbenefits NO STANDARD PAGE HEADING.

INCLUDE zbhr_termedwithbenefits_top." Global dataINCLUDE zbhr_termedwithbenefits_scr." Screen elementsINCLUDE zbhr_termedwithbenefits_frm." Subroutines

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_treas. "F4 help for termination reason PERFORM f4_termination_reason.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lreas. "F4 help for leave of absence reason PERFORM f4_loa_reason.

AT SELECTION-SCREEN on p_treas. " validate termination reason perform validate_treason.

AT SELECTION-SCREEN on p_lreas. " validate leave of absence reason perform validate_lreason.

AT SELECTION-SCREEN on p_wkcno. " validate work center

Page 2: Termed employees with Benefits

perform validate_wkcenter.

START-OF-SELECTION. pnpbegda = pn-begda. pnpendda = pn-endda. pn-begps = pn-begda. pn-endps = pn-endda. pnpbegps = pn-begda. pnpendps = pn-endda.

"Set pn-begda/pn-endda for infotypes rp_set_data_interval 'P0000' pn-begda pn-endda. rp_set_data_interval 'P0001' pn-begda pn-endda. rp_set_data_interval 'P0002' pn-begda pn-endda. rp_set_data_interval 'P0167' pn-begda pn-endda. rp_set_data_interval 'P0168' pn-begda pn-endda. rp_set_data_interval 'P0169' pn-begda pn-endda. rp_set_data_interval 'P0170' pn-begda pn-endda.

" fetch text of fields like personnel area PERFORM fetch_texts.

GET pernr. " get data from infotypes and fill i_final table PERFORM get_data.

END-OF-SELECTION. " display ALV report PERFORM display_report.

Page 3: Termed employees with Benefits

** Includes : ************************************************************************* Dependencies************************************************************************ Modification History ************************************************************************* Date Programmer Cleint Ref No. Description Correction ** ************************************************************************

TABLES: pernr.************************************************************************ Infotypes ************************************************************************INFOTYPES: 0000, " Actions 0001, "Org. Assignment 0002, " Personal data 0006, " Address 0041, " Date specifications 0167, "Health Plans 0168, "Insurance Plans 0169, "Savings Plans 0170. "Spending Accounts

************************************************************************ Types ************************************************************************TYPES: BEGIN OF t_t530t, " to capture reason for action massg TYPE massg, "Reason for Action mgtxt TYPE mgtxt, "Name of reason for action END OF t_t530t,

BEGIN OF t_final, bukrs TYPE bukrs, orgtx TYPE orgtx," Short Text of Organizational Unit werks TYPE p0001-werks," personnel are btrtl TYPE p0001-btrtl," sub area name1 TYPE char45," Personnel area/ sub area text pernr TYPE pernr_d, perid TYPE prdni," SSN ename TYPE string, stat2 TYPE text40,"status tdate TYPE p0041-dat01, treason TYPE text40, ldate TYPE begda, lreason TYPE text40, bplan TYPE ben_plan,

Page 4: Termed employees with Benefits

bptext TYPE text30," Benefit plan text bopti TYPE ben_option, " Benefit health plan option bpotext TYPE text30," Benefit health plan option text depcv TYPE ben_depcov," Dependent coverage dctext TYPE text20," Benefit dependent coverage text paid_date TYPE pay_date, " last paid date tplnr TYPE tplnr," work center pltxt TYPE pltxt," Work center description sup_pernr TYPE pernr-pernr, " supervisor ID NUMBER(pernr) sup_name(122) TYPE c, " supervisor NAME emp_add TYPE char120, "employee address END OF t_final,

BEGIN OF t_header, bukrs TYPE bukrs, orgtx TYPE orgtx," Short Text of Organizational Unit werks TYPE p0001-werks," personnel area name1 TYPE pbtxt," Personnel area text btrtl TYPE p0001-btrtl," sub area btext TYPE btrtx, " Personnel sub Area Text pernr TYPE pernr_d, perid TYPE prdni," SSN ename TYPE string, stat2 TYPE text40," status tdate TYPE p0041-dat01, treason TYPE text40, ldate TYPE begda, lreason TYPE text40, tplnr TYPE tplnr," work center pltxt TYPE pltxt," Work center description sup_pernr TYPE pernr-pernr, " supervisor ID NUMBER(pernr) sup_name(122) TYPE c, " supervisor NAME emp_add TYPE char120, " employee address paid_date TYPE pay_date, " last paid date END OF t_header,

"" Personnel Area text BEGIN OF t_t500p, persa TYPE char04, " Personnel Area name1 TYPE char30, " Personnel Area Text END OF t_t500p,

*-- Personnel sub Area text BEGIN OF t_t001p, werks TYPE persa, btrtl TYPE btrtl_001p, " Personnel sub Area btext TYPE btrtx, " Personnel sub Area Text END OF t_t001p,

Page 5: Termed employees with Benefits

* "-- action reason text BEGIN OF t_t530t_2, massn TYPE massn, massg TYPE massg, "Reason for Action mgtxt TYPE mgtxt, "Name of reason for action END OF t_t530t_2,

"" org unit text BEGIN OF t_t527x, orgeh TYPE orgeh, orgtx TYPE orgtx, END OF t_t527x,

"" benefit plan text BEGIN OF t_t5uca, barea TYPE ben_area, bplan TYPE ben_plan, ltext TYPE text30, END OF t_t5uca,

"" benefit health plan option text BEGIN OF t_t5uce, barea TYPE ben_area, bplan TYPE ben_plan, bopti TYPE ben_option, ltext TYPE text30, END OF t_t5uce,

"" dependent coverage text BEGIN OF t_t5ucf, barea TYPE ben_area, depcv TYPE ben_depcov, ltext TYPE text20, END OF t_t5ucf,

"" state text BEGIN OF t_t005u, land1 TYPE land1, bland TYPE regio, bezei TYPE bezei20, END OF t_t005u,

"" benefit insurance option text BEGIN OF t_t74ga, barea TYPE ben_area, bplan TYPE ben_plan, bcovr TYPE ben_covlvl, ltext TYPE ben_covltx, END OF t_t74ga,

Page 6: Termed employees with Benefits

"" status text BEGIN OF t_t529u, statv TYPE stata ," Status indicator for actions text1 TYPE text40," status text END OF t_t529u.

************************************************************************ Internal Table ************************************************************************DATA: i_final TYPE STANDARD TABLE OF t_final, i_t530t TYPE STANDARD TABLE OF t_t530t_2, i_t527x TYPE STANDARD TABLE OF t_t527x, i_t500p TYPE STANDARD TABLE OF t_t500p, i_t001p TYPE STANDARD TABLE OF t_t001p, i_t5uca TYPE STANDARD TABLE OF t_t5uca, i_t5uce TYPE STANDARD TABLE OF t_t5uce, i_t5ucf TYPE STANDARD TABLE OF t_t5ucf, i_t74ga TYPE STANDARD TABLE OF t_t74ga, i_t005u TYPE STANDARD TABLE OF t_t005u, i_t529u TYPE STANDARD TABLE OF t_t529u.

************************************************************************ Class referencess ************************************************************************DATA : v_gr_salv TYPE REF TO cl_salv_table." used in Top of SALVDATA : v_gr_content TYPE REF TO cl_salv_form_element, v_gr_functions TYPE REF TO cl_salv_functions.

************************************************************************ Work areas ************************************************************************DATA: w_header TYPE t_header.

************************************************************************ Variables ************************************************************************DATA: v_bplan TYPE t5ubu-bplan, v_pltyp TYPE t5ub1-pltyp.

************************************************************************ Constants ************************************************************************CONSTANTS: c_e TYPE char01 VALUE 'E', c_zi TYPE char02 VALUE 'ZI', c_x TYPE char01 VALUE 'X', c_01 TYPE char02 VALUE '01', c_s TYPE otype VALUE 'S',

Page 7: Termed employees with Benefits

c_clm TYPE i VALUE 2, c_onli TYPE char04 VALUE 'ONLI'.

* Tables Used : SELECT UPDATE INSERT DELETE JOIN *** Includes : ************************************************************************* Dependencies************************************************************************ Modification History ************************************************************************* Date Programmer Cleint Ref No. Description Correction ** ************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-054.PARAMETERS: p_barea TYPE t5ubu-barea VALUE CHECK OBLIGATORY." benefit areaSELECT-OPTIONS : s_pltyp for v_pltyp NO INTERVALS," plan type s_bplan FOR v_bplan NO INTERVALS." benefit plan codePARAMETERS: p_tdate TYPE p0041-dat01," termination date p_treas TYPE p0000-massn," termination reason p_ldate TYPE p0000-begda," leave of absence date p_lreas TYPE p0000-massn," action p_wkcno TYPE iflot-tplnr." work centerSELECTION-SCREEN END OF BLOCK b1.

************************************************************************ Description: Subroutines of ZBHR_TERMEDWITHBENEFITS. ** ************************************************************************* Tables Used : SELECT UPDATE INSERT DELETE JOIN ** t530t X ** t500p X ** t001p X ** t527x X* t5uca X* t5uce X* t5ucf X* t005u X* t74ga X* Includes : ************************************************************************* Dependencies************************************************************************ Modification History ************************************************************************

Page 8: Termed employees with Benefits

* Date Programmer Cleint Ref No. Description Correction ** ************************************************************************

*&---------------------------------------------------------------------**& Form F4_TERMINATION_REASON*&---------------------------------------------------------------------** F4 help for termination reason*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM f4_termination_reason . DATA: li_t530t TYPE STANDARD TABLE OF t_t530t, li_return TYPE STANDARD TABLE OF ddshretval.

FIELD-SYMBOLS: <lx_return> TYPE ddshretval. SELECT massg mgtxt FROM t530t INTO TABLE li_t530t WHERE sprsl = c_e AND massn EQ c_zi AND massg GE space. IF sy-subrc = 0. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING* DDIC_STRUCTURE = ' ' retfield = 'MASSG'* PVALKEY = ' '* DYNPPROG = ' '* DYNPNR = ' '* DYNPROFIELD = ' '* STEPL = 0 window_title = text-001* VALUE = ' ' value_org = 'S'* MULTIPLE_CHOICE = ' '* DISPLAY = ' '* CALLBACK_PROGRAM = ' '* CALLBACK_FORM = ' '* CALLBACK_METHOD =* MARK_TAB =* IMPORTING* USER_RESET = TABLES value_tab = li_t530t* FIELD_TAB = return_tab = li_return* DYNPFLD_MAPPING = EXCEPTIONS parameter_error = 1 no_values_found = 2

Page 9: Termed employees with Benefits

OTHERS = 3 . IF sy-subrc <> 0. MESSAGE e899(m&) WITH text-002. ELSE. UNASSIGN <lx_return>. READ TABLE li_return ASSIGNING <lx_return> INDEX 1. IF <lx_return> IS ASSIGNED. p_treas = <lx_return>-fieldval. ENDIF. ENDIF. ENDIF.ENDFORM. " F4_TERMINATION_REASON*&---------------------------------------------------------------------**& Form F4_LOA_REASON*&---------------------------------------------------------------------** F4 help for leave of absence reason*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM f4_loa_reason . DATA: li_t530t TYPE STANDARD TABLE OF t_t530t, li_return TYPE STANDARD TABLE OF ddshretval.

FIELD-SYMBOLS: <lx_return> TYPE ddshretval. SELECT massg mgtxt FROM t530t INTO TABLE li_t530t WHERE sprsl = c_e AND massn IN ('ZF', 'ZG', 'ZH') AND massg GE space. IF sy-subrc = 0. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING* DDIC_STRUCTURE = ' ' retfield = 'MASSG'* PVALKEY = ' '* DYNPPROG = ' '* DYNPNR = ' '* DYNPROFIELD = ' '* STEPL = 0 window_title = text-003* VALUE = ' ' value_org = 'S'* MULTIPLE_CHOICE = ' '* DISPLAY = ' '* CALLBACK_PROGRAM = ' '* CALLBACK_FORM = ' '* CALLBACK_METHOD =* MARK_TAB =* IMPORTING

Page 10: Termed employees with Benefits

* USER_RESET = TABLES value_tab = li_t530t* FIELD_TAB = return_tab = li_return* DYNPFLD_MAPPING = EXCEPTIONS parameter_error = 1 no_values_found = 2 OTHERS = 3 . IF sy-subrc <> 0. MESSAGE e899(m&) WITH text-002. ELSE. UNASSIGN <lx_return>. READ TABLE li_return ASSIGNING <lx_return> INDEX 1. IF <lx_return> IS ASSIGNED. p_lreas = <lx_return>-fieldval. ENDIF. ENDIF. ENDIF.ENDFORM. " F4_LOA_REASON*&---------------------------------------------------------------------**& Form FETCH_TEXTS*&---------------------------------------------------------------------** fetch text of fields like personnel area*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM fetch_texts . " reason text SELECT massn massg mgtxt FROM t530t INTO TABLE i_t530t WHERE sprsl = c_e AND massn IN ('ZI', 'ZF', 'ZG', 'ZH') AND massg GE space. IF sy-subrc = 0. SORT i_t530t BY massn massg. ENDIF. " orgnization unit text SELECT orgeh orgtx FROM t527x INTO TABLE i_t527x WHERE sprsl = c_e AND orgeh GE space AND endda GE sy-datum AND begda LE sy-datum. IF sy-subrc = 0. SORT i_t527x BY orgeh. ENDIF. " personnel area text SELECT persa name1 FROM t500p INTO TABLE i_t500p.

Page 11: Termed employees with Benefits

IF sy-subrc = 0. SORT i_t500p BY persa. ENDIF. " personnel subarea text SELECT werks btrtl btext FROM t001p INTO TABLE i_t001p. IF sy-subrc = 0. SORT i_t001p BY werks btrtl. ENDIF. " benefit plan code text SELECT barea bplan ltext FROM t5uca INTO TABLE i_t5uca WHERE langu = c_e. IF sy-subrc = 0. SORT i_t5uca BY barea bplan. ENDIF. " benefit health plan option text SELECT barea bplan bopti ltext FROM t5uce INTO TABLE i_t5uce WHERE langu = c_e. IF sy-subrc = 0. SORT i_t5uce BY barea bplan bopti. ENDIF. " dependent coverage text SELECT barea depcv ltext FROM t5ucf INTO TABLE i_t5ucf WHERE langu = c_e. IF sy-subrc = 0. SORT i_t5ucf BY barea depcv. ENDIF. " Benefit insurance plan option texts SELECT barea bplan bcovr ltext FROM t74ga INTO TABLE i_t74ga WHERE langu = c_e. IF sy-subrc = 0. SORT i_t74ga BY barea bplan bcovr. ENDIF. " state text SELECT land1 bland bezei FROM t005u INTO TABLE i_t005u WHERE spras = c_e. IF sy-subrc = 0. SORT i_t005u BY land1 bland. ENDIF. " status text SELECT statv text1 FROM t529u INTO TABLE i_t529u WHERE sprsl = 'E' AND statn = '2'. IF sy-subrc = 0. SORT i_t529u BY statv. ENDIF.ENDFORM. " FETCH_TEXTS*&---------------------------------------------------------------------**& Form GET_DATA*&---------------------------------------------------------------------*

Page 12: Termed employees with Benefits

* get data from infotypes and fill i_final table*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM get_data . CLEAR w_header. " fetch from IT0000 PERFORM fetch_0000. " fetch from IT0001 PERFORM fetch_0001. " fetch from IT0002 PERFORM fetch_0002. " fetch from IT0006 PERFORM fetch_0006. " fetch supervisor ID and name PERFORM fetch_supervisor. " fetch last paid date PERFORM last_paid_date. " Get participation data from p0167, p0168, p0169 and p0170 PERFORM provide_p0167. PERFORM provide_p0168. PERFORM provide_p0169. PERFORM provide_p0170.ENDFORM. " GET_DATA*&---------------------------------------------------------------------**& Form FETCH_0000*&---------------------------------------------------------------------** fetch from IT0000*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM fetch_0000 . FIELD-SYMBOLS: <lx_t530t> TYPE t_t530t_2, <lx_t529u> TYPE t_t529u.* Read infotype 0000 rp-provide-from-last p0000 space pn-begda pn-endda. IF pnp-sw-found = 1. IF p0000-stat2 = '0' OR p0000-stat2 = '1'.* w_header-stat2 = p0000-stat2. UNASSIGN <lx_t529u>. READ TABLE i_t529u ASSIGNING <lx_t529u> WITH KEY statv = p0000-stat2 BINARY SEARCH. IF <lx_t529u> IS ASSIGNED. w_header-stat2 = <lx_t529u>-text1. ENDIF.

Page 13: Termed employees with Benefits

IF p0000-massn = 'ZI'. " if action is for termination UNASSIGN <lx_t530t>. READ TABLE i_t530t ASSIGNING <lx_t530t> WITH KEY massn = p0000-massn massg = p0000-massg BINARY SEARCH. IF <lx_t530t> IS ASSIGNED. w_header-treason = <lx_t530t>-mgtxt. " screening based on term. reason selection parameter IF p_treas IS NOT INITIAL AND p0000-massg NE p_treas. REJECT. ENDIF. ENDIF. " fetch termination date PERFORM fetch_termdate. ELSEIF p0000-massn = 'ZF' " if action for leave of absence OR p0000-massn = 'ZG' OR p0000-massn = 'ZH'. UNASSIGN <lx_t530t>. READ TABLE i_t530t ASSIGNING <lx_t530t> WITH KEY massn = p0000-massn massg = p0000-massg BINARY SEARCH. IF <lx_t530t> IS ASSIGNED. w_header-lreason = <lx_t530t>-mgtxt. " screening based on loa reason selection parameter IF p_lreas IS NOT INITIAL AND p0000-massg NE p_lreas. REJECT. ENDIF. ENDIF. w_header-ldate = p0000-begda. " screening of data based on p_ldate IF p_ldate IS NOT INITIAL AND w_header-ldate NE p_ldate. REJECT. ENDIF. ELSE. REJECT . ENDIF. ELSE. REJECT . ENDIF.

ENDIF.ENDFORM. " FETCH_0000*&---------------------------------------------------------------------**& Form FETCH_TERMDATE*&---------------------------------------------------------------------** fetch termination date

Page 14: Termed employees with Benefits

*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM fetch_termdate . DATA: lv_dtype TYPE p0041-dar01, lv_date TYPE p0041-dat01. rp_provide_from_last p0041 space pn-begda pn-endda. IF pnp-sw-found = 1. DO 12 TIMES VARYING lv_dtype FROM p0041-dar01 NEXT p0041-dar02 VARYING lv_date FROM p0041-dat01 NEXT p0041-dat02. IF lv_dtype = '91'. w_header-tdate = lv_date. EXIT. ENDIF.

IF lv_dtype IS INITIAL AND lv_date IS INITIAL. EXIT. ENDIF. ENDDO. ENDIF. " screening of data based on p_tdate IF p_tdate IS NOT INITIAL AND w_header-tdate NE p_tdate. REJECT. ENDIF.ENDFORM. " FETCH_TERMDATE*&---------------------------------------------------------------------**& Form FETCH_0001*&---------------------------------------------------------------------** fetch from IT0001*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM fetch_0001 . FIELD-SYMBOLS: <lx_t527x> TYPE t_t527x, <lx_t500p> TYPE t_t500p, <lx_t001p> TYPE t_t001p.* Read infotype 0001 rp_provide_from_last p0001 space pn-begda pn-endda. IF pnp-sw-found = 1. w_header-bukrs = p0001-bukrs. UNASSIGN <lx_t527x>. READ TABLE i_t527x ASSIGNING <lx_t527x> WITH KEY orgeh = p0001-orgeh BINARY SEARCH. IF <lx_t527x> IS ASSIGNED. w_header-orgtx = <lx_t527x>-orgtx. ENDIF.

Page 15: Termed employees with Benefits

w_header-werks = p0001-werks. UNASSIGN <lx_t500p>. READ TABLE i_t500p ASSIGNING <lx_t500p> WITH KEY persa = p0001-werks BINARY SEARCH. IF <lx_t500p> IS ASSIGNED. w_header-name1 = <lx_t500p>-name1. ENDIF. w_header-btrtl = p0001-btrtl. UNASSIGN <lx_t001p>. READ TABLE i_t001p ASSIGNING <lx_t001p> WITH KEY werks = p0001-werks btrtl = p0001-btrtl BINARY SEARCH. IF <lx_t001p> IS ASSIGNED. w_header-btext = <lx_t001p>-btext. ENDIF. PERFORM fetch_funcloc. ENDIF.ENDFORM. " FETCH_0001*&---------------------------------------------------------------------**& Form FETCH_0002*&---------------------------------------------------------------------** fetch from IT0002*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM fetch_0002 .* Read infotype 0002 rp_provide_from_last p0002 space pn-begda pn-endda. IF pnp-sw-found = 1. w_header-pernr = pernr-pernr. w_header-perid = p0002-perid. CONCATENATE : p0002-nachn ',' INTO w_header-ename, w_header-ename p0002-vorna INTO w_header-ename SEPARATED BY space, w_header-ename ',' INTO w_header-ename, w_header-ename p0002-midnm INTO w_header-ename SEPARATED BY space. ENDIF.ENDFORM. " FETCH_0002*&---------------------------------------------------------------------**& Form FETCH_0006*&---------------------------------------------------------------------** fetch from IT0006*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM fetch_0006 .

Page 16: Termed employees with Benefits

DATA: lv_state TYPE bezei20. FIELD-SYMBOLS: <lx_t005u> TYPE t_t005u. rp-provide-from-last p0006 '1' pn-begda pn-endda. IF pnp-sw-found = 1. UNASSIGN <lx_t005u>. CLEAR lv_state. READ TABLE i_t005u ASSIGNING <lx_t005u> WITH KEY land1 = p0006-land1 bland = p0006-state BINARY SEARCH. IF <lx_t005u> IS ASSIGNED. lv_state = <lx_t005u>-bezei. ENDIF. CONCATENATE: p0006-stras ',' INTO w_header-emp_add, w_header-emp_add p0006-ort01 INTO w_header-emp_add SEPARATED BY space, w_header-emp_add ',' INTO w_header-emp_add, w_header-emp_add lv_state INTO w_header-emp_add SEPARATED BY space, w_header-emp_add ',' INTO w_header-emp_add, w_header-emp_add p0006-pstlz INTO w_header-emp_add SEPARATED BY space. ENDIF.ENDFORM. " FETCH_0006*&---------------------------------------------------------------------**& Form FETCH_SUPERVISOR*&---------------------------------------------------------------------** fetch supervisor ID and name*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM fetch_supervisor . DATA : lv_sobid TYPE hrsobid-sobid, lv_fname TYPE p0002-vorna, lv_lname TYPE p0002-nachn, lv_midname TYPE p0002-midnm. DATA: lt_hrobject TYPE TABLE OF hrobject , lt_disp TYPE TABLE OF tree_objec . DATA: lw_disp TYPE tree_objec, lw_hrobject TYPE hrobject. REFRESH: lt_hrobject,lt_disp. CLEAR: lv_sobid, lw_hrobject, lw_disp, lv_fname, lv_lname, lv_midname. "-- get manager employee id MOVE p0001-plans TO lv_sobid. CALL FUNCTION 'RH_GET_LEADING_POSITION' EXPORTING

Page 17: Termed employees with Benefits

plvar = c_01 otype = c_s sobid = lv_sobid consider_vac_pos = c_x TABLES leading_pos = lt_hrobject EXCEPTIONS no_lead_pos_found = 1 OTHERS = 2. IF sy-subrc = 0. READ TABLE lt_hrobject INTO lw_hrobject INDEX 1. IF sy-subrc = 0. CALL FUNCTION 'RH_OM_GET_HOLDER_OF_POSITION' EXPORTING plvar = c_01 otype = c_s objid = lw_hrobject-objid TABLES disp_tab = lt_disp EXCEPTIONS no_active_plvar = 1 OTHERS = 2. IF sy-subrc = 0. READ TABLE lt_disp INTO lw_disp INDEX 1. IF sy-subrc = 0. w_header-sup_pernr = lw_disp-objid. ELSE. w_header-sup_pernr = text-004. " Passing NULL if field is initial ENDIF. ENDIF. ENDIF. ELSE. w_header-sup_pernr = text-004. ENDIF. "-- suppres leading zeros SHIFT w_header-sup_pernr LEFT DELETING LEADING '0'. "--get manager name SELECT SINGLE vorna nachn midnm FROM pa0002 INTO (lv_fname, lv_lname, lv_midname) WHERE pernr = lw_disp-objid AND endda GE sy-datum AND begda LE sy-datum. IF sy-subrc = 0. CONCATENATE lv_fname lv_lname lv_midname INTO w_header-sup_name SEPARATED BY space. ELSE.

Page 18: Termed employees with Benefits

w_header-sup_name = text-004. " Passing NULL if field is initial ENDIF.ENDFORM. " FETCH_SUPERVISOR

*&---------------------------------------------------------------------**& Form LAST_PAID_DATE*&---------------------------------------------------------------------** fetch last paid date*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM last_paid_date . DATA: li_rgdir TYPE STANDARD TABLE OF pc261, li_payresult TYPE pay99_result. FIELD-SYMBOLS: <lx_pc261> TYPE pc261, <lx_payresult> TYPE LINE OF hrpay99_rt. UNASSIGN : <lx_pc261>.

CALL FUNCTION 'CU_READ_RGDIR' EXPORTING persnr = pernr-pernr TABLES in_rgdir = li_rgdir EXCEPTIONS no_record_found = 1 OTHERS = 2. IF sy-subrc = 0. IF li_rgdir IS NOT INITIAL. SORT li_rgdir BY paydt DESCENDING. LOOP AT li_rgdir ASSIGNING <lx_pc261> WHERE abkrs EQ pernr-abkrs AND fpbeg GE pn-begda AND fpend LE pn-endda. IF <lx_pc261> IS ASSIGNED. CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT' EXPORTING clusterid = 'RU' employeenumber = pernr-pernr sequencenumber = <lx_pc261>-seqnr read_only_international = c_x CHANGING payroll_result = li_payresult EXCEPTIONS illegal_isocode_or_clusterid = 1 error_generating_import = 2 import_mismatch_error = 3 subpool_dir_full = 4 no_read_authority = 5

Page 19: Termed employees with Benefits

no_record_found = 6 versions_do_not_match = 7 error_reading_archive = 8 error_reading_relid = 9 OTHERS = 10. IF sy-subrc <> 0. ENDIF. IF li_payresult IS NOT INITIAL. READ TABLE li_payresult-inter-rt ASSIGNING <lx_payresult> WITH KEY lgart = '/301'. IF <lx_payresult> IS ASSIGNED. w_header-paid_date = <lx_pc261>-paydt . EXIT. ENDIF. ENDIF. endif. ENDLOOP. ENDIF. ENDIF.

ENDFORM. " LAST_PAID_DATE*&---------------------------------------------------------------------**& Form PROVIDE_P0167*&---------------------------------------------------------------------** fetch from IT0167*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM provide_p0167 . FIELD-SYMBOLS: <lx_t5uca> TYPE t_t5uca, <lx_final> TYPE t_final, <lx_t5uce> TYPE t_t5uce, <lx_t5ucf> TYPE t_t5ucf. DATA: lv_bdate TYPE begda.

CLEAR lv_bdate. if w_header-tdate is not initial. lv_bdate = w_header-tdate. elseif w_header-ldate is NOT INITIAL. lv_bdate = w_header-ldate. endif. if lv_bdate is not INITIAL. LOOP AT p0167 WHERE endda GE lv_bdate AND begda LE pn-endda AND barea EQ p_barea.

CHECK: p0167-pltyp IN s_pltyp, p0167-bplan IN s_bplan.

Page 20: Termed employees with Benefits

APPEND INITIAL LINE TO i_final ASSIGNING <lx_final>. "" copying header data to ALV <lx_final>-bukrs = w_header-bukrs . <lx_final>-orgtx = w_header-orgtx . <lx_final>-werks = w_header-werks . <lx_final>-btrtl = w_header-btrtl . CONCATENATE w_header-name1 ',' w_header-btext INTO <lx_final>-name1 SEPARATED BY space. <lx_final>-pernr = w_header-pernr . <lx_final>-perid = w_header-perid . <lx_final>-ename = w_header-ename . <lx_final>-stat2 = w_header-stat2 . <lx_final>-tdate = w_header-tdate . <lx_final>-treason = w_header-treason . <lx_final>-ldate = w_header-ldate . <lx_final>-lreason = w_header-lreason . <lx_final>-tplnr = w_header-tplnr . <lx_final>-pltxt = w_header-pltxt . <lx_final>-sup_pernr = w_header-sup_pernr . <lx_final>-sup_name = w_header-sup_name . <lx_final>-emp_add = w_header-emp_add . <lx_final>-paid_date = w_header-paid_date . "" assigning p0167 data to final table <lx_final>-bplan = p0167-bplan. UNASSIGN <lx_t5uca>. READ TABLE i_t5uca ASSIGNING <lx_t5uca> WITH KEY barea = p0167-barea bplan = p0167-bplan BINARY SEARCH. IF <lx_t5uca> IS ASSIGNED. <lx_final>-bptext = <lx_t5uca>-ltext. ENDIF. <lx_final>-bopti = p0167-bopti. UNASSIGN <lx_t5uce>. READ TABLE i_t5uce ASSIGNING <lx_t5uce> WITH KEY barea = p0167-barea bplan = p0167-bplan bopti = p0167-bopti BINARY SEARCH. IF <lx_t5uce> IS ASSIGNED. <lx_final>-bpotext = <lx_t5uce>-ltext. ENDIF.

<lx_final>-depcv = p0167-depcv. UNASSIGN <lx_t5ucf>. READ TABLE i_t5ucf ASSIGNING <lx_t5ucf> WITH KEY barea = p0167-barea depcv = p0167-depcv BINARY SEARCH. IF <lx_t5ucf> IS ASSIGNED. <lx_final>-dctext = <lx_t5ucf>-ltext.

Page 21: Termed employees with Benefits

ENDIF.

ENDLOOP. endif.ENDFORM. " PROVIDE_P0167*&---------------------------------------------------------------------**& Form PROVIDE_P0168*&---------------------------------------------------------------------** fetch from IT0168*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM provide_p0168 . FIELD-SYMBOLS: <lx_t5uca> TYPE t_t5uca, <lx_final> TYPE t_final, <lx_t74ga> TYPE t_t74ga. DATA: lv_bdate TYPE begda.

CLEAR lv_bdate. if w_header-tdate is not initial. lv_bdate = w_header-tdate. elseif w_header-ldate is NOT INITIAL. lv_bdate = w_header-ldate. endif. if lv_bdate is not INITIAL. LOOP AT p0168 WHERE endda GE lv_bdate AND begda LE pn-endda AND barea EQ p_barea.

CHECK: p0168-pltyp IN s_pltyp, p0168-bplan IN s_bplan.

APPEND INITIAL LINE TO i_final ASSIGNING <lx_final>. "" copying header data to ALV <lx_final>-bukrs = w_header-bukrs . <lx_final>-orgtx = w_header-orgtx . <lx_final>-werks = w_header-werks . <lx_final>-btrtl = w_header-btrtl . CONCATENATE w_header-name1 ',' w_header-btext INTO <lx_final>-name1 SEPARATED BY space. <lx_final>-pernr = w_header-pernr . <lx_final>-perid = w_header-perid . <lx_final>-ename = w_header-ename . <lx_final>-stat2 = w_header-stat2 . <lx_final>-tdate = w_header-tdate . <lx_final>-treason = w_header-treason . <lx_final>-ldate = w_header-ldate . <lx_final>-lreason = w_header-lreason .

Page 22: Termed employees with Benefits

<lx_final>-tplnr = w_header-tplnr . <lx_final>-pltxt = w_header-pltxt . <lx_final>-sup_pernr = w_header-sup_pernr . <lx_final>-sup_name = w_header-sup_name . <lx_final>-emp_add = w_header-emp_add . <lx_final>-paid_date = w_header-paid_date . "" assigning p0168 data to final table <lx_final>-bplan = p0168-bplan. UNASSIGN <lx_t5uca>. READ TABLE i_t5uca ASSIGNING <lx_t5uca> WITH KEY barea = p0168-barea bplan = p0168-bplan BINARY SEARCH. IF <lx_t5uca> IS ASSIGNED. <lx_final>-bptext = <lx_t5uca>-ltext. ENDIF. <lx_final>-bopti = p0168-bcovr. UNASSIGN <lx_t74ga>. READ TABLE i_t74ga ASSIGNING <lx_t74ga> WITH KEY barea = p0168-barea bplan = p0168-bplan bcovr = p0168-bcovr BINARY SEARCH. IF <lx_t74ga> IS ASSIGNED. <lx_final>-bpotext = <lx_t74ga>-ltext. ENDIF. ENDLOOP. endif.ENDFORM. " PROVIDE_P0168*&---------------------------------------------------------------------**& Form PROVIDE_P0169*&---------------------------------------------------------------------** fetch from IT0169*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM provide_p0169 . FIELD-SYMBOLS: <lx_t5uca> TYPE t_t5uca, <lx_final> TYPE t_final. DATA: lv_bdate TYPE begda.

CLEAR lv_bdate. if w_header-tdate is not initial. lv_bdate = w_header-tdate. elseif w_header-ldate is NOT INITIAL. lv_bdate = w_header-ldate. endif. if lv_bdate is not INITIAL. LOOP AT p0169 WHERE endda GE lv_bdate AND begda LE pn-endda

Page 23: Termed employees with Benefits

AND barea EQ p_barea.

CHECK: p0169-pltyp IN s_pltyp, p0169-bplan IN s_bplan.

APPEND INITIAL LINE TO i_final ASSIGNING <lx_final>. "" copying header data to ALV <lx_final>-bukrs = w_header-bukrs . <lx_final>-orgtx = w_header-orgtx . <lx_final>-werks = w_header-werks . <lx_final>-btrtl = w_header-btrtl . CONCATENATE w_header-name1 ',' w_header-btext INTO <lx_final>-name1 SEPARATED BY space. <lx_final>-pernr = w_header-pernr . <lx_final>-perid = w_header-perid . <lx_final>-ename = w_header-ename . <lx_final>-stat2 = w_header-stat2 . <lx_final>-tdate = w_header-tdate . <lx_final>-treason = w_header-treason . <lx_final>-ldate = w_header-ldate . <lx_final>-lreason = w_header-lreason . <lx_final>-tplnr = w_header-tplnr . <lx_final>-pltxt = w_header-pltxt . <lx_final>-sup_pernr = w_header-sup_pernr . <lx_final>-sup_name = w_header-sup_name . <lx_final>-emp_add = w_header-emp_add . <lx_final>-paid_date = w_header-paid_date . "" assigning p0169 data to final table <lx_final>-bplan = p0169-bplan. UNASSIGN <lx_t5uca>. READ TABLE i_t5uca ASSIGNING <lx_t5uca> WITH KEY barea = p0169-barea bplan = p0169-bplan BINARY SEARCH. IF <lx_t5uca> IS ASSIGNED. <lx_final>-bptext = <lx_t5uca>-ltext. ENDIF. ENDLOOP. endif.ENDFORM. " PROVIDE_P0169*&---------------------------------------------------------------------**& Form PROVIDE_P0170*&---------------------------------------------------------------------** fetch from IT0170*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM provide_p0170 . FIELD-SYMBOLS: <lx_t5uca> TYPE t_t5uca,

Page 24: Termed employees with Benefits

<lx_final> TYPE t_final. DATA: lv_bdate TYPE begda.

CLEAR lv_bdate. if w_header-tdate is not initial. lv_bdate = w_header-tdate. elseif w_header-ldate is NOT INITIAL. lv_bdate = w_header-ldate. endif. if lv_bdate is not INITIAL. LOOP AT p0170 WHERE endda GE lv_bdate AND begda LE pn-endda AND barea EQ p_barea.

CHECK: p0170-pltyp IN s_pltyp, p0170-bplan IN s_bplan.

APPEND INITIAL LINE TO i_final ASSIGNING <lx_final>. "" copying header data to ALV <lx_final>-bukrs = w_header-bukrs . <lx_final>-orgtx = w_header-orgtx . <lx_final>-werks = w_header-werks . <lx_final>-btrtl = w_header-btrtl . CONCATENATE w_header-name1 ',' w_header-btext INTO <lx_final>-name1 SEPARATED BY space. <lx_final>-pernr = w_header-pernr . <lx_final>-perid = w_header-perid . <lx_final>-ename = w_header-ename . <lx_final>-stat2 = w_header-stat2 . <lx_final>-tdate = w_header-tdate . <lx_final>-treason = w_header-treason . <lx_final>-ldate = w_header-ldate . <lx_final>-lreason = w_header-lreason . <lx_final>-tplnr = w_header-tplnr . <lx_final>-pltxt = w_header-pltxt . <lx_final>-sup_pernr = w_header-sup_pernr . <lx_final>-sup_name = w_header-sup_name . <lx_final>-emp_add = w_header-emp_add . <lx_final>-paid_date = w_header-paid_date . "" assigning p0170 data to final table <lx_final>-bplan = p0170-bplan. UNASSIGN <lx_t5uca>. READ TABLE i_t5uca ASSIGNING <lx_t5uca> WITH KEY barea = p0170-barea bplan = p0170-bplan BINARY SEARCH. IF <lx_t5uca> IS ASSIGNED. <lx_final>-bptext = <lx_t5uca>-ltext. ENDIF. ENDLOOP.

Page 25: Termed employees with Benefits

endif.ENDFORM. " PROVIDE_P0170*&---------------------------------------------------------------------**& Form FETCH_FUNCLOC*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM fetch_funcloc . DATA: li_tplnr TYPE zsm_tplnr_t. FIELD-SYMBOLS: <lx_tplnr> TYPE zsm_tplnr. CLEAR li_tplnr. CALL METHOD zcl_sm_static=>get_floc_for_empl EXPORTING i_pernr = pernr-pernr i_plant = p0001-werks i_hier = space i_valid_date = pn-begda IMPORTING o_func_loc = li_tplnr. IF li_tplnr IS NOT INITIAL. IF p_wkcno IS INITIAL. UNASSIGN <lx_tplnr>. READ TABLE li_tplnr ASSIGNING <lx_tplnr> WITH KEY tplnr = p_wkcno. IF <lx_tplnr> IS ASSIGNED. w_header-tplnr = <lx_tplnr>-tplnr. w_header-pltxt = <lx_tplnr>-pltxt. ELSE. REJECT. ENDIF. ELSE. UNASSIGN <lx_tplnr>. READ TABLE li_tplnr ASSIGNING <lx_tplnr> INDEX 1. IF <lx_tplnr> IS ASSIGNED. w_header-tplnr = <lx_tplnr>-tplnr. w_header-pltxt = <lx_tplnr>-pltxt. ENDIF. ENDIF. ELSE. IF p_wkcno IS NOT INITIAL. REJECT." reject pernr if work center is not maintained ENDIF." and user has given work center on selection screen ENDIF.

ENDFORM. " FETCH_FUNCLOC*&---------------------------------------------------------------------**& Form DISPLAY_REPORT

Page 26: Termed employees with Benefits

*&---------------------------------------------------------------------** Display ALV report*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM display_report . SORT i_final BY bukrs orgtx werks btrtl bplan pernr. IF i_final IS NOT INITIAL. TRY. CALL METHOD cl_salv_table=>factory IMPORTING r_salv_table = v_gr_salv CHANGING t_table = i_final. CATCH cx_salv_msg . MESSAGE text-005 TYPE c_s DISPLAY LIKE c_e. LEAVE LIST-PROCESSING. ENDTRY.

**perform get record details for header. PERFORM top_of_list CHANGING v_gr_content. v_gr_salv->set_top_of_list( v_gr_content ).**setting column positions PERFORM column_positioning.**activating list funtions v_gr_functions = v_gr_salv->get_functions( ). v_gr_functions->set_all( abap_true ).***Displaying salv IF v_gr_salv IS NOT INITIAL. CALL METHOD v_gr_salv->display. ELSE. v_gr_salv->refresh( ). ENDIF. ELSE. MESSAGE text-006 TYPE c_s DISPLAY LIKE c_e. LEAVE LIST-PROCESSING. ENDIF.ENDFORM. " DISPLAY_REPORT*&---------------------------------------------------------------------**& Form TOP_OF_LIST*&---------------------------------------------------------------------** get record details for header*----------------------------------------------------------------------** <--ch_gr_content text*----------------------------------------------------------------------*FORM top_of_list CHANGING ch_gr_content TYPE REF TO cl_salv_form_element. DATA : lv_gr_grid TYPE REF TO cl_salv_form_layout_grid.

Page 27: Termed employees with Benefits

CREATE OBJECT lv_gr_grid. lv_gr_grid->add_row( ).** Add Label in Grid ** lv_gr_grid->create_label( row = 1 " Date column = 1 text = text-007 tooltip = text-007 ).** Add Text in The Grid ** lv_gr_grid->create_text( row = 1 column = c_clm text = sy-datum ).

** Add Label in Grid ** lv_gr_grid->create_label( row = 2 " Time column = 1 text = text-008 tooltip = text-008 ).** Add Text in The Grid ** lv_gr_grid->create_text( row = 2 column = c_clm text = sy-uzeit ). ch_gr_content = lv_gr_grid.ENDFORM. " TOP_OF_LIST*&---------------------------------------------------------------------**& Form COLUMN_POSITIONING*&---------------------------------------------------------------------** setting column positions*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM column_positioning . DATA: lv_gr_column TYPE REF TO cl_salv_column_table, lv_gr_columns TYPE REF TO cl_salv_columns_table.

lv_gr_columns = v_gr_salv->get_columns( ). " setting column position and heading PERFORM set_col_heading USING: 1 lv_gr_columns 'BUKRS' text-010 text-011 text-011 10, 2 lv_gr_columns 'ORGTX' text-012 text-013 text-013 20, 3 lv_gr_columns 'NAME1' text-014 text-015 text-016 25, 4 lv_gr_columns 'PERNR' text-017 text-018 text-018 11, 5 lv_gr_columns 'PERID' text-019 text-020 text-020 15, 6 lv_gr_columns 'ENAME' text-021 text-022 text-022 20,

Page 28: Termed employees with Benefits

7 lv_gr_columns 'STAT2' text-023 text-024 text-024 11, 8 lv_gr_columns 'TDATE' text-025 text-026 text-026 15, 9 lv_gr_columns 'TREASON' text-027 text-028 text-028 15, 10 lv_gr_columns 'LDATE' text-029 text-029 text-029 15, 11 lv_gr_columns 'LREASON' text-030 text-030 text-030 15, 12 lv_gr_columns 'BPLAN' text-031 text-032 text-032 15, 13 lv_gr_columns 'BPTEXT' text-033 text-034 text-034 15, 14 lv_gr_columns 'BOPTI' text-035 text-036 text-036 15, 15 lv_gr_columns 'BPOTEXT' text-037 text-038 text-038 15, 16 lv_gr_columns 'DEPCV' text-039 text-040 text-040 15, 17 lv_gr_columns 'DCTEXT' text-041 text-042 text-042 15, 18 lv_gr_columns 'PAID_DATE' text-043 text-044 text-044 15, 19 lv_gr_columns 'TPLNR' text-045 text-045 text-045 15, 20 lv_gr_columns 'PLTXT' text-046 text-047 text-047 20, 21 lv_gr_columns 'SUP_PERNR' text-048 text-049 text-049 15, 22 lv_gr_columns 'SUP_NAME' text-050 text-051 text-051 20, 23 lv_gr_columns 'EMP_ADD' text-052 text-053 text-053 25.

" making field invisible TRY. lv_gr_column ?= lv_gr_columns->get_column( 'WERKS').

CALL METHOD lv_gr_column->set_technical EXPORTING value = if_salv_c_bool_sap=>true. CATCH cx_salv_not_found. ENDTRY. TRY. lv_gr_column ?= lv_gr_columns->get_column( 'BTRTL').

CALL METHOD lv_gr_column->set_technical EXPORTING

Page 29: Termed employees with Benefits

value = if_salv_c_bool_sap=>true. CATCH cx_salv_not_found. ENDTRY.ENDFORM. " COLUMN_POSITIONING*&---------------------------------------------------------------------**& Form SET_COL_HEADING*&---------------------------------------------------------------------** setting column position and heading*----------------------------------------------------------------------** -->IM_COLPOS* -->IM_GR_COLUMNS text* -->IM_COLUMNNAME text* -->IM_STEXT text* -->IM_MTEXT text* -->IM_LTEXT text* -->IM_LTEXT text*----------------------------------------------------------------------*FORM set_col_heading USING im_colpos TYPE i im_gr_columns TYPE REF TO cl_salv_columns_table im_columnname TYPE lvc_fname im_stext TYPE scrtext_s im_mtext TYPE scrtext_m im_ltext TYPE scrtext_l im_outlen TYPE lvc_outlen.

DATA: lv_col TYPE REF TO cl_salv_column. "" setting column position to im_colpos CALL METHOD im_gr_columns->set_column_position EXPORTING columnname = im_columnname position = im_colpos. " setting column heading TRY. CLEAR lv_col. CALL METHOD im_gr_columns->get_column EXPORTING columnname = im_columnname RECEIVING value = lv_col. CALL METHOD lv_col->set_short_text EXPORTING value = im_stext. CALL METHOD lv_col->set_medium_text EXPORTING value = im_mtext.

CALL METHOD lv_col->set_long_text EXPORTING value = im_ltext.

Page 30: Termed employees with Benefits

CALL METHOD lv_col->set_output_length EXPORTING value = im_outlen. CATCH cx_salv_not_found . MESSAGE text-005 TYPE c_s DISPLAY LIKE c_e. LEAVE LIST-PROCESSING. ENDTRY.ENDFORM. " SET_COL_HEADING*&---------------------------------------------------------------------**& Form VALIDATE_TREASON*&---------------------------------------------------------------------** Validate termination reason*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*form VALIDATE_TREASON .data: lv_massn TYPE massn, lv_massg TYPE massg.if p_treas is not INITIAL.if sy-ucomm = c_onli or sy-ucomm = space.select single massn massg from t530 into (lv_massn, lv_massg) where massn = c_zi and massg = p_treas. if sy-subrc <> 0. message text-055 TYPE 'E'. ENDIF. endif. endif.endform. " VALIDATE_TREASON*&---------------------------------------------------------------------**& Form VALIDATE_LREASON*&---------------------------------------------------------------------** Validate leave of absence reason*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*form VALIDATE_LREASON .data: lv_massn TYPE massn, lv_massg TYPE massg.if p_lreas is not INITIAL.if sy-ucomm = c_onli or sy-ucomm = space.select single massn massg

Page 31: Termed employees with Benefits

from t530 into (lv_massn, lv_massg) where massn IN ('ZF', 'ZG', 'ZH') and massg = p_lreas. if sy-subrc <> 0. message text-056 TYPE 'E'. ENDIF. endif. endif.endform. " VALIDATE_LREASON*&---------------------------------------------------------------------**& Form VALIDATE_WKCENTER*&---------------------------------------------------------------------** Validate work center*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*form VALIDATE_WKCENTER .data: lv_wkcno TYPE iflot-tplnr.

if p_wkcno is not INITIAL.if sy-ucomm = c_onli or sy-ucomm = space. select single tplnr from iflot INTO lv_wkcno where tplnr = p_wkcno. if sy-subrc <> 0. MESSAGE text-057 TYPE 'E'. endif. endif. endif.endform. " VALIDATE_WKCENTER