Code:
FORM CALL_GENERATE_WORK_SCHEDULE "new "XLXK021641
TABLES INT552A STRUCTURE INT552A
USING PSHFT STRUCTURE PSHFT.
DATA ARGUMENT(20).
DATA I552A LIKE T552A OCCURS 30 WITH HEADER LINE.
DATA: BEGJAHR LIKE T552A-KJAHR,
BEGMONAT LIKE T552A-MONAT,
ENDJAHR LIKE T552A-KJAHR,
ENDMONAT LIKE T552A-MONAT.
BEGJAHR = PSHFT-PRD01+2(4).
BEGMONAT = PSHFT-PRD01+0(2).
ENDJAHR = PSHFT-PRD02+2(4).
ENDMONAT = PSHFT-PRD02+0(2).
CALL FUNCTION 'HR_GENERATE_WORK_SCHEDULE'
EXPORTING
ZEITY = PSHFT-ZEITY
MOFID = PSHFT-MOFID
MOSID = PSHFT-MOSID
SCHKZ = PSHFT-SCHKZ
BEGJAHR = BEGJAHR
BEGMONAT = BEGMONAT
ENDJAHR = ENDJAHR
ENDMONAT = ENDMONAT
TABLES
INT552A = I552A
EXCEPTIONS
ERROR_OCCURED = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
PERFORM PROCESS_MESSAGES.
ENDIF.
LOOP AT I552A.
PERFORM RE552A USING I552A-ZEITY
I552A-MOFID
I552A-MOSID
I552A-SCHKZ
I552A-KJAHR
I552A-MONAT.
IF SY-SUBRC EQ 0.
CONCATENATE I552A-ZEITY I552A-MOFID I552A-MOSID I552A-SCHKZ
I552A-MONAT I552A-KJAHR INTO ARGUMENT
SEPARATED BY SPACE.
MESSAGE W780 WITH ARGUMENT.
ENDIF.
INT552A = I552A.
INT552A-OPERA = UPD.
APPEND INT552A.
ENDLOOP.
SORT INT552A BY ZEITY
MOFID
MOSID
SCHKZ
KJAHR
MONAT.
ENDFORM.
А дальше уже анализировать в цикле I552A и смотреть классы праздников и все что нужно для того чтобы определить рабочий день или не рабочий
Сорри что не форматированные вывод и не особо читаем в форуме