Monday, April 7, 2025

Not good example of HR_ABS_ATT_TIMES_AT_ENTRY

 

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

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.

No comments:

Post a Comment

Dbf не чіпаємо, маніпуляції тільки з itab

 1. Dbf tab містить ВСІ 67-68 полів,  Ztab - тільки ті 25-45 полів що використовуються в продовженні ресурсів, їх і копіюємо Dbf не редагува...