본문 바로가기
ABAP/Function|Class

[Function] HOLIDAY_GET - 공휴일/공장 달력의 휴일 정보

by name_text 2023. 7. 24.

HOLIDAY_GET

공휴일/공장 달력의 휴일 정보

 

T-Code : SCAL 에 설정한 공휴일 또는 공장달력의 휴일정보를 가져오는 Function입니다.

Working day 기준으로 무언가를 할때 사용 할 수 있습니다.

 

공휴일과 공장달력 별 근무일은 SCAL에서 설정할 수 있으며

공장달력은 플랜트, 영업조직등에 조직별로 설정하여 사용할 수 있습니다

 

# 사용예시

PARAMETERS : P_VKORG TYPE TVKO-VKORG OBLIGATORY.
SELECT-OPTIONS: S_DATE FOR SY-DATUM NO-EXTENSION OBLIGATORY.

INITIALIZATION.
  S_DATE-LOW = |{ SY-DATUM(6) }01|.
  CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
    EXPORTING
      DAY_IN                  = SY-DATUM
    IMPORTING
      LAST_DAY_OF_MONTH       = S_DATE-HIGH
    EXCEPTIONS
      DAY_IN_NO_DATE          = 1
      OTHERS                  = 2
            .
  IF SY-SUBRC EQ 0.
    APPEND S_DATE.
  ENDIF.

START-OF-SELECTION.
  SELECT SINGLE VKOKL FROM TVKO WHERE VKORG EQ @P_VKORG INTO @DATA(LV_VKOKL).

  DATA LT_HOLIDAYS TYPE STANDARD TABLE OF ISCAL_DAY.

  CALL FUNCTION 'HOLIDAY_GET'
    EXPORTING
*     HOLIDAY_CALENDAR                 = ' '
      FACTORY_CALENDAR                 = LV_VKOKL         "공장달력(근무달력)
      DATE_FROM                        = S_DATE-LOW       "조회 시작일
      DATE_TO                          = S_DATE-HIGH      "조회 종료일
*   IMPORTING
*     YEAR_OF_VALID_FROM               =
*     YEAR_OF_VALID_TO                 =
*     RETURNCODE                       =
    TABLES
      HOLIDAYS                         = LT_HOLIDAYS      "휴일 정보
    EXCEPTIONS
      FACTORY_CALENDAR_NOT_FOUND       = 1
      HOLIDAY_CALENDAR_NOT_FOUND       = 2
      DATE_HAS_INVALID_FORMAT          = 3
      DATE_INCONSISTENCY               = 4
      OTHERS                           = 5
            .
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  ZCL_SALV_TEST=>DISPLAY( LT_HOLIDAYS ).

댓글