on 01-16-2009 10:04 AM
Hi all,
Does anybody has code to find the number of days and years an employee
has been in the organization..
just ask your abaper to take Date of Joining and compare with sydatm
Doj you can get from IT 0001 or IT0041
This is simple logic
you wont get this info in clusters
Warm Regards
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
check wday field in wpbp table through tcode pc_payresult.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
You can use this code to get the total Experience in company.
FUNCTION zhr_total_exp.
*"----
""Local Interface:
*" IMPORTING
*" REFERENCE(PERNR) TYPE PERNR_D
*" EXPORTING
*" REFERENCE(TOT_YEARS) TYPE C
*"----
INFOTYPES : 0000,
0041.
TYPES : BEGIN OF x_stat,
stat2 TYPE stat2,
massn TYPE massn,
date01 TYPE begda,
date02 TYPE endda,
END OF x_stat.
DATA : it_stat TYPE STANDARD TABLE OF x_stat,
wa_stat TYPE x_stat.
TYPES : BEGIN OF x_hire,
stat2 TYPE stat2,
massn TYPE massn,
date01 TYPE begda,
date02 TYPE endda,
END OF x_hire.
DATA : it_hire TYPE STANDARD TABLE OF x_hire,
wa_hire TYPE x_hire.
DATA: itab_pa0041 TYPE STANDARD TABLE OF pa0041 WITH HEADER LINE.
DATA: wa_pa0041 LIKE itab_pa0041.
DATA: hire_date LIKE pa0041-dat01, "hire date
curr_date LIKE sy-datum, "current date
join_date LIKE pa0041-dat01, "joining date
separate_date LIKE pa0041-dat03,
dar LIKE pa0041-dar01,
dat LIKE pa0041-dat01.
DATA: mon1 TYPE p0000_af-nomns, year1 TYPE p0000_af-noyrs.
DATA: flag TYPE i. "CH10
flag = 0. "CH10
DATA: dat1 LIKE pa0041-dat01, "CH13
dat9 LIKE pa0041-dat01. "CH13
curr_date = sy-datum.
DATA: BEGIN OF it_empgrp OCCURS 0,
pernr TYPE pa0001-pernr,
begda TYPE pa0001-begda,
persg TYPE pa0001-persg,
END OF it_empgrp.
DATA: BEGIN OF it_action OCCURS 0,
pernr TYPE pa0000-pernr,
begda TYPE pa0000-begda,
massn TYPE pa0000-massn,
END OF it_action.
get the actions
SELECT pernr begda massn FROM pa0000 INTO TABLE it_action WHERE pernr = pernr.
get the employee group from table pa0001
SELECT pernr begda persg INTO TABLE it_empgrp FROM pa0001 WHERE pernr = pernr AND endda = '99991231'.
SORT it_empgrp DESCENDING BY begda.
end of ch12
SELECT * FROM pa0041 INTO TABLE itab_pa0041 WHERE pernr = pernr AND endda = '99991231' .
SORT itab_pa0041 DESCENDING BY begda.
CLEAR : dar, dat.
LOOP AT it_empgrp WHERE persg = 'G' OR persg = 'H' OR persg = 'I' OR persg = 'J'.
ENDLOOP.
IF sy-subrc EQ 0.
***************Start of CH13
LOOP AT itab_pa0041 INTO wa_pa0041.
DO 12 TIMES VARYING dar FROM wa_pa0041-dar01
NEXT wa_pa0041-dar02
VARYING dat FROM wa_pa0041-dat01
NEXT wa_pa0041-dat02.
CASE dar.
WHEN '01'.
MOVE dat TO dat1.
WHEN '09'.
MOVE dat TO dat9.
ENDCASE.
ENDDO.
ENDLOOP.
IF dat1 <> dat9.
hire_date = dat1.
IF hire_date IS NOT INITIAL AND curr_date IS NOT INITIAL.
PERFORM calcexp USING hire_date curr_date CHANGING tot_years .
ENDIF.
ELSE.
CLEAR: hire_date,
curr_date,
tot_years.
ENDIF.
ELSE.
CLEAR: dar , dat , dat1, dat9.
LOOP AT itab_pa0041 INTO wa_pa0041.
DO 12 TIMES VARYING dar FROM wa_pa0041-dar01
NEXT wa_pa0041-dar02
VARYING dat FROM wa_pa0041-dat01
NEXT wa_pa0041-dat02.
CASE dar.
WHEN '01'.
MOVE dat TO hire_date.
IF hire_date IS NOT INITIAL AND curr_date IS NOT INITIAL.
PERFORM calcexp USING hire_date curr_date CHANGING tot_years .
ENDIF.
ENDCASE.
ENDDO.
ENDLOOP.
ENDIF.
IF tot_years IS INITIAL.
CONCATENATE '00' '.' '00' INTO tot_years.
ENDIF.
ENDFUNCTION.
To Find Out The Difference Between 2 Dates **********
FORM calcexp USING date1 date2 CHANGING total_years .
DATA: mon1 TYPE p0000_af-nomns,
year1 TYPE p0000_af-noyrs,
day1 TYPE p0000_af-nodys.
CALL FUNCTION 'HR_CALC_YEAR_MONTH_DAY'
EXPORTING
begda = date1
endda = date2
IMPORTING
years_out = year1
months_out = mon1
days_out = day1.
IF day1 > 15.
mon1 = mon1 + 1.
CLEAR day1.
ENDIF.
IF mon1 > 11.
year1 = year1 + mon1 DIV 12.
mon1 = mon1 MOD 12.
ENDIF.
CONCATENATE year1 '.' mon1 INTO total_years.
ENDFORM. "calcexp
Thanks & Regards,
Aniruddha Bane
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.