SAP/MM

납품정보, PO잔량, 재고조회

znoflo 2013. 4. 18. 16:23

 
*     납품정보에서 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 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.