https://ysychov.wordpress.com/2019/02/17/hr_abs_att_times_at_entry/
*&---------------------------------------------------------------------*
*& Report ZYS_TIMES
* Не все параметры переданы внутрь
* Функции, поэтому sy-subrc=3,
* Error occured.
Передавать все (смотр. интерфейс
функционального модуля в Построителе
Функций).
*&---------------------------------------------------------------------*
*& Расчет отсутствия(ИТ 2001)/присутствия(ИТ 2002) сотрудника
*&---------------------------------------------------------------------*
REPORT zys_times.
DATA: l_abwtg TYPE abwtg,
l_kaltg TYPE kaltg,
l_beguz TYPE beguz,
l_enduz TYPE enduz,
l_vtken LIKE p2001-vtken,
l_stdaz LIKE p2001-stdaz,
l_abrtg LIKE p2001-abrtg,
l_abrst LIKE p2001-abrst,
lt_0000 TYPE TABLE OF p0000,
lt_0001 TYPE TABLE OF p0001,
lt_0002 TYPE TABLE OF p0002,
lt_0007 TYPE TABLE OF p0007,
lt_2001 TYPE TABLE OF p2001,
lt_2002 TYPE TABLE OF p2002,
lt_2003 TYPE TABLE OF p2003,
lt_pws TYPE TABLE OF ptpsp,
lt_tpd TYPE TABLE OF ptm_times_per_day.
PARAMETERS: p_pernr TYPE persno OBLIGATORY,
p_awart TYPE awart OBLIGATORY,
p_begda TYPE begda OBLIGATORY,
p_endda TYPE endda OBLIGATORY.
PERFORM calc.
WRITE: / l_kaltg, ' - календарные дни'.
WRITE: / l_abwtg, ' - рабочие дни'.
WRITE: / l_abrst, ' - рабочие часы'.
WRITE: / l_abrtg, ' - дни лимита'.
FORM calc.
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_0000
FROM pa0000
WHERE pernr = p_pernr.
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_0001
FROM pa0001
WHERE pernr = p_pernr.
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_0007
FROM pa0007
WHERE pernr = p_pernr.
CALL FUNCTION 'HR_ABS_ATT_TIMES_AT_ENTRY'
EXPORTING
pernr = p_pernr
awart = p_awart
begda = p_begda
endda = p_endda
IMPORTING
abwtg = l_abwtg
abrtg = l_abrtg
abrst = l_abrst
kaltg = l_kaltg
TABLES
m0000 = lt_0000
m0001 = lt_0001
m0002 = lt_0002
m0007 = lt_0007
m2001 = lt_2001
m2002 = lt_2002
m2003 = lt_2003
pws = lt_pws "расшифровка графика рабочего времени за каждый день
times_per_day = lt_tpd "расшифровка всех временных данных за каждый день
CHANGING
beguz = l_beguz
enduz = l_enduz
vtken = l_vtken
stdaz = l_stdaz
* BREAKS =
* NXDFL =
* START_BEF_ZERO =
* CV_ABSATT_NEXT_DAY = ABAP_FALSE
EXCEPTIONS
it0001_missing = 1
customizing_error = 2
error_occurred = 3
end_before_begin = 4
OTHERS = 5.
ENDFORM.