Цитата:
ФМ HOLIDAY_CHECK_AND_GET_INFO
в oy05 выбираете нужный календарь ( 01 например )
проверяете дату ( а так как там еще в день до праздников, то еще и дату + 1 )
Начали разбираться с HOLIDAY_CHECK_AND_GET_INFO.
Но почему-то когда указываю на нужный календарь (03), система выдаёт ошибку, якобы ошибка в написании. Что делаем не так?data: auftrags_nr type STANDARD TABLE OF BAPI_PP_ORDERRANGE,
kopfzeile TYPE STANDARD TABLE OF BAPI_ORDER_HEADER1,
return like BAPIRET2.
write:/ 'Auftragsnummer Auftragsmaterial Anlegedatum Starttermin Nicht zugelassener Tag'.
uline.
*Zu Tabellenparametern die Kopfzeilen definieren
data struk_auftrags_nr like line of auftrags_nr.
data struk_kopfzeile like line of kopfzeile.
*Datenbereich Datum JJJJMMTT
data datum type sy-datum.
datum = '20150101'.
*Übergabeobjekt füllen
*kopfzeile füllen
*Das IST NUR DIE KOPFZEILE!
struk_auftrags_nr-sign = 'I'.
struk_auftrags_nr-option = 'BT'.
struk_auftrags_nr-low = '000000000000'.
struk_auftrags_nr-high = '999999999999'.
* Tabelle füllen
insert struk_auftrags_nr into table auftrags_nr.
* Aufruf des Funktionsbausteins mit Parametern - das als erstes
CALL FUNCTION 'BAPI_PRODORD_GET_LIST'
* EXPORTING
* COLLECTIVE_ORDER =
IMPORTING
RETURN = return
TABLES
ORDER_NUMBER_RANGE = auftrags_nr
* MATERIAL_RANGE =
* PRODPLANT_RANGE =
* PLANPLANT_RANGE =
* ORDER_TYPE_RANGE =
* MRP_CNTRL_RANGE =
* PROD_SCHED_RANGE =
* SALES_ORD_RANGE =
* SALES_ORD_ITM_RANGE =
* WBS_ELEMENT_RANGE =
* SEQ_NO_RANGE =
* ORDER_PRIO_RANGE =
ORDER_HEADER = kopfzeile
.
* Ausgabe kopfzeile
loop at kopfzeile into struk_kopfzeile WHERE ENTER_DATE BETWEEN datum AND sy-datum.
write:/ struk_kopfzeile-order_number, struk_kopfzeile-material, struk_kopfzeile-enter_date.
endloop.
CALL FUNCTION 'HOLIDAY_CHECK_AND_GET_INFO'
EXPORTING
DATE =
HOLIDAY_CALENDAR_ID = 03
WITH_HOLIDAY_ATTRIBUTES = ' '
IMPORTING
HOLIDAY_FOUND =
TABLES
HOLIDAY_ATTRIBUTES =
EXCEPTIONS
CALENDAR_BUFFER_NOT_LOADABLE = 1
DATE_AFTER_RANGE = 2
DATE_BEFORE_RANGE = 3
DATE_INVALID = 4
HOLIDAY_CALENDAR_ID_MISSING = 5
HOLIDAY_CALENDAR_NOT_FOUND = 6
OTHERS = 7
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
skip.
uline.
WRITE:/ 'Betroffene Fertigungsaufträge', '...', 'von insgesamt', '...'.
uline.