Professional Documents
Culture Documents
Z_RIZ_HR_EMP_ABSENCE_DET *&
*&---------------------------------------------------------------------* *& *&
*&---------------------------------------------------------------------* REPORT
Z_RIZ_HR_EMP_ABSENCE_DET. TABLES : PA0001,PA2006. TYPE-POOLS:SLIS. SELECT-OPTIONS :
S_EMP FOR PA0001-PERNR, S_PERSG FOR PA0001-PERSG, S_BEGDA FOR PA0001-BEGDA, S_KTART
FOR PA2006-KTART. TYPES: BEGIN OF TY_EMP, PERNR TYPE PA0001-PERNR, CNAME TYPE
PA0002-CNAME, PERSG TYPE PA0001-PERSG, PTEXT TYPE T501T-PTEXT, PERSK TYPE PA0001-
PERSK, PTEXT1 TYPE T503T-PTEXT, AWART TYPE PA2001-AWART, ATEXT TYPE T554T-ATEXT,
ABRST TYPE PA2001-ABRST, ABWTG TYPE PA2001-ABWTG, KTART TYPE PA2006-KTART, KTEXT
TYPE T556B-KTEXT, BEGDA TYPE PA2001-BEGDA, ENDDA TYPE PA2001-ENDDA, ANZHL TYPE
PA2006-ANZHL, KVERB TYPE PA2006-KVERB, BALCE(3) TYPE N, END OF TY_EMP.
" " " " " " " " " " "
Emp Number Emp Name Emp Group NAME OF EMP GROUP Emp Sub Group EmpSub Group Name
Abscence TYPE Absence Type Text Abscence hr Abscence Days Leave Type " Absence
quota type text (LEAVE TYPE TEXT) " Begin date " End date " Leave Quota Number "
Leave Quota " Balance ( Leave Quota - Abscence Days)
TYPES : BEGIN OF TY_0001, PERNR TYPE PA0001-PERNR, PERSG TYPE PA0001-PERSG, PERSK
TYPE PA0001-PERSK, END OF TY_0001. TYPES : BEGIN OF TY_0002, PERNR TYPE PA0001-
PERNR, vorna TYPE PA0002-vorna, nachn TYPE PA0002-nachn, END OF TY_0002. TYPES :
BEGIN OF TY_2001, PERNR TYPE PA0001-PERNR, BEGDA TYPE PA2001-BEGDA, " Begin date
ENDDA TYPE PA2001-ENDDA, " End date AWART TYPE PA2001-AWART, " ABSANCE TYPE
ABWTG TYPE PA2001-ABWTG, " Abscence Days ABRST TYPE PA2001-ABRST, " Abscence hr END
OF TY_2001. TYPES : BEGIN OF TY_2006, PERNR TYPE PA2006-PERNR, KTART TYPE PA2006-
KTART, " Leave Type ANZHL TYPE PA2006-ANZHL, " Leave Quota Number KVERB TYPE
PA2006-KVERB, " Deduction END OF TY_2006. TYPES : BEGIN OF TY_T501T, PERSG TYPE
T501T-PERSG, PTEXT TYPE T501T-PTEXT, END OF TY_T501T. " EMPLOYEE GROUP " Name of
Employee Group
TYPES : BEGIN OF TY_T503T, PERSK TYPE T503T-PERSK, " EMPLOYEE SUB GROUP PTEXT1 TYPE
T503T-PTEXT, " Name of Employee SUB Group END OF TY_T503T. TYPES : BEGIN OF
TY_T554T, AWART TYPE T554T-AWART, ATEXT TYPE T554T-ATEXT, END OF TY_T554T. TYPES :
BEGIN OF TY_T556B, KTART TYPE T556B-KTART, KTEXT TYPE T556B-KTEXT, END OF TY_T556B.
" Attendance or Absence Type " Text for Attendance/Absence Type
" Absence Quota Type (LEAVE TYPE) " Absence quota type text
DATA : it_emp TYPE ty_emp OCCURS 0, wa_emp type ty_emp, it_0001 TYPE TABLE OF
ty_0001, wa_0001 type ty_0001, it_0002 TYPE TABLE OF ty_0002, wa_0002 type ty_0002,
it_2001 type TABLE OF ty_2001, wa_2001 type ty_2001, it_2006 TYPE TABLE OF ty_2006,
wa_2006 TYPE ty_2006, IT_T501T TYPE TABLE OF TY_T501T, WA_T501T TYPE TY_T501T,
IT_T503T TYPE TABLE OF TY_T503T, WA_T503T TYPE TY_T503T, IT_T554T TYPE TABLE OF
TY_T554T, WA_T554T TYPE TY_T554T, IT_T556B TYPE TABLE OF TY_T556B, WA_T556B TYPE
TY_T556B.
READ TABLE s_begda INDEX 1. SELECT PERNR PERSG PERSK FROM PA0001 INTO CORRESPONDING
FIELDS OF TABLE IT_0001 WHERE PERNR IN S_EMP and begda le S_BEGDA-high and endda ge
s_begda-low. if sy-dbcnt = 0. MESSAGE I000(ZRIZ_MSG) WITH ' NO EMP REC FOUND'.
ELSE. SELECT PERSG PTEXT FROM T501T INTO CORRESPONDING FIELDS OF TABLE IT_T501T FOR
ALL ENTRIES IN IT_0001 WHERE PERSG = IT_0001-PERSG and sprsl = sy-langu. SELECT
PERSK PTEXT FROM T503T INTO CORRESPONDING FIELDS OF TABLE IT_T503T FOR ALL ENTRIES
IN IT_0001 WHERE PERSK = IT_0001-PERSK and sprsl = sy-langu. SELECT PERNR VORNA
nachn FROM PA0002 INTO CORRESPONDING FIELDS OF TABLE IT_0002 FOR ALL ENTRIES IN
IT_0001 WHERE PERNR = IT_0001-PERNR and begda le S_BEGDA-high and endda ge s_begda-
low. sort it_0002 by pernr. SELECT PERNR BEGDA ENDDA AWART ABWTG ABRST FROM PA2001
INTO CORRESPONDING FIELDS OF TABLE IT_2001 FOR ALL ENTRIES IN IT_0001 WHERE PERNR =
IT_0001-PERNR and begda le S_BEGDA-high and endda ge s_begda-low. SELECT AWART
ATEXT FROM T554T INTO CORRESPONDING FIELDS OF TABLE IT_T554T FOR ALL ENTRIES IN
IT_2001 WHERE AWART = IT_2001-AWART and sprsl = sy-langu. SELECT PERNR KTART ANZHL
KVERB FROM PA2006
INTO CORRESPONDING FIELDS OF TABLE IT_2006 FOR ALL ENTRIES IN IT_0001 WHERE PERNR =
IT_0001-PERNR and begda le S_BEGDA-high and endda ge s_begda-low. SELECT KTART
KTEXT FROM T556B INTO CORRESPONDING FIELDS OF TABLE IT_T556B FOR ALL ENTRIES IN
IT_2006 WHERE KTART = IT_2006-KTART and sprsl = sy-langu. SORT IT_2006 BY PERNR.
ENDIF. LOOP AT it_0001 into wa_0001. wa_emp-pernr = wa_0001-pernr. wa_emp-persg =
wa_0001-persg. wa_emp-persk = wa_0001-persk. READ TABLE IT_T501T INTO WA_T501T WITH
KEY PERSG = wa_0001-persg. IF SY-subrc = 0. wa_emp-ptext = WA_T501T-PTEXT. ENDIF.
READ TABLE IT_T503T INTO WA_T503T WITH KEY PERSK = wa_0001-persk. IF SY-subrc = 0.
wa_emp-ptext1 = WA_T501T-PTEXT. ENDIF. READ TABLE it_0002 into wa_0002 with key
pernr = wa_0001-pernr BINARY SEARCH. if sy-subrc = 0. CONCATENATE wa_0002-vorna
WA_0002-NACHN INTO WA_EMP-CNAME SEPARATED BY SPACE. endif.
READ TABLE IT_T554T INTO WA_T554T WITH KEY AWART = WA_2001-AWART. IF SY-subrc = 0.
wa_emp-ATEXT = WA_T554T-ATEXT. ENDIF. IF WA_2001-AWART = '0100'. READ TABLE it_2006
into wa_2006
with key pernr = wa_0001-pernr KTART = '09' BINARY SEARCH. IF SY-SUBRC = 0. WA_EMP-
KTART = WA_2006-KTART. WA_EMP-ANZHL = WA_2006-ANZHL. WA_EMP-KVERB = WA_2006-KVERB.
WA_EMP-BALCE = WA_2006-ANZHL - WA_2006-KVERB. ENDIF. READ TABLE IT_T556B INTO
WA_T556B WITH KEY KTART = WA_2006-KTART. IF SY-subrc = 0. wa_emp-KTEXT = WA_T556B-
KTEXT. ENDIF. ENDIF. APPEND WA_EMP TO IT_EMP. ENDLOOP.