납품정보, PO잔량, 재고조회
* 납품정보에서 Select
CLEAR ITAB-DEVDT.
SELECT SINGLE A~ERDAT INTO ITAB-DEVDT
FROM LIPS AS A INNER JOIN EKKO AS B
ON A~VGBEL = B~EBELN
WHERE A~WERKS = ITAB-WERKS
AND A~MATNR = ITAB-MATNR
AND A~VGBEL = ITAB-EBELN
AND B~LIFNR = ITAB-LIFNR.
IF SY-SUBRC <> 0.
CLEAR ITAB-DEVDT.
SELECT SINGLE ERDAT INTO ITAB-DEVDT
FROM LIPS AS A INNER JOIN EKKO AS B
ON A~VGBEL = B~EBELN
WHERE A~WERKS = ITAB-WERKS
AND A~MATNR = ITAB-MATNR
AND B~BEDAT >= ITAB-REQDT
AND B~LIFNR = ITAB-LIFNR.
ENDIF.
* 입고실적에서 Select
SELECT SINGLE BUDAT INTO ITAB-DEVDT
FROM EKBE AS A INNER JOIN EKKO AS B
ON A~EBELN = B~EBELN
WHERE A~MATNR = ITAB-MATNR
AND A~WERKS = ITAB-WERKS
AND A~EBELN = ITAB-EBELN
AND A~VGABE = '1'
AND A~BEWTP = 'E'
AND A~BWART = '101'
AND B~LIFNR = ITAB-LIFNR.
IF SY-SUBRC <> 0.
SELECT A~BUDAT INTO ITAB-DEVDT
FROM EKBE AS A INNER JOIN EKKO AS B
ON A~EBELN = B~EBELN
UP TO 1 ROWS
WHERE A~WERKS = ITAB-WERKS
AND A~MATNR = ITAB-MATNR
AND A~VGABE = '1'
AND A~BEWTP = 'E'
AND A~BWART = '101'
AND A~BUDAT >= ITAB-REQDT
AND B~LIFNR = ITAB-LIFNR
ORDER BY A~BUDAT DESCENDING.
ENDSELECT.
ENDIF.
* 발주잔량 체크
SELECT SINGLE A~EBELN INTO EKKO-EBELN
FROM EKKO AS A INNER JOIN EKPO AS B
ON A~EBELN = B~EBELN
INNER JOIN EKET AS C
ON B~EBELN = C~EBELN AND
B~EBELP = C~EBELP
WHERE A~LIFNR = ITAB-LIFNR
AND B~MATNR = ITAB-MATNR
AND B~WERKS = ITAB-WERKS
AND A~EBELN = ITAB-EBELN
AND B~LOEKZ = ' '
AND B~ELIKZ = ' '
AND C~MENGE > C~WEMNG.
IF SY-SUBRC <> 0.
SELECT SINGLE A~EBELN INTO EKKO-EBELN
FROM EKKO AS A INNER JOIN EKPO AS B
ON A~EBELN = B~EBELN
INNER JOIN EKET AS C
ON B~EBELN = C~EBELN AND
B~EBELP = C~EBELP
WHERE A~LIFNR = ITAB-LIFNR
AND B~MATNR = ITAB-MATNR
AND B~WERKS = ITAB-WERKS
AND A~BEDAT >= ITAB-REQDT
AND B~LOEKZ = ' '
AND B~ELIKZ = ' '
AND C~MENGE > C~WEMNG.
IF SY-SUBRC <> 0.
* 발주잔량 없음.
ENDIF.
* 재고 존재 여부 체크
SELECT SINGLE MATNR INTO L_POSTK
FROM MBEW
WHERE MATNR = ITAB0-MATNR
AND BWKEY = ITAB0-WERKS
AND BWTAR = ' '
AND LBKUM > 0.