SAP/ABAP

자재평가 및 자재원장 불일치 시 MBEW 자재평가의 재고 및 금액을 자재원장 기준으로 UPDATE 프로그램

rossella 2011. 9. 8. 15:12

REPORT  ZTMP.


DATA BEGIN OF GT_CKMLHD OCCURS 0.
          INCLUDE STRUCTURE CKMLHD.
DATA :    SALK3 TYPE CKMLCR-SALK3"자재원장 총액
          LBKUM TYPE CKMLPP-LBKUM"자재원장 수량
DATA END OF GT_CKMLHD.


DATA BEGIN OF GT_CKMLPP OCCURS 0.
          INCLUDE STRUCTURE CKMLPP.
DATA END OF GT_CKMLPP.

DATA BEGIN OF GT_CKMLCR OCCURS 0.
          INCLUDE STRUCTURE CKMLCR.
DATA END OF GT_CKMLCR.

DATA BEGIN OF GS_MBEW.
        INCLUDE STRUCTURE MBEW.
DATA END OF GS_MBEW.

SELECT *
  INTO CORRESPONDING FIELDS OF TABLE GT_CKMLHD
  FROM CKMLHD
 WHERE BWKEY 'P010' .


LOOP AT GT_CKMLHD.
  REFRESH GT_CKMLPP,GT_CKMLCR.

  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE GT_CKMLCR
    FROM CKMLCR
   WHERE KALNR GT_CKMLHD-KALNR
   ORDER BY BDATJ DESCENDING
            POPER DESCENDING.
  READ TABLE GT_CKMLCR INDEX 1.
  IF SY-SUBRC EQ 0.
    GT_CKMLHD-SALK3 GT_CKMLCR-SALK3.
  ENDIF.

  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE GT_CKMLPP "총액
    FROM CKMLPP
   WHERE KALNR GT_CKMLHD-KALNR
   ORDER BY BDATJ DESCENDING
            POPER DESCENDING.
  READ TABLE GT_CKMLPP INDEX 1.
  IF SY-SUBRC EQ .
    GT_CKMLHD-LBKUM GT_CKMLPP-LBKUM.
  ENDIF.

  SELECT SINGLE
         MATNR
         LBKUM
         SALK3
    INTO CORRESPONDING FIELDS OF GS_MBEW
    FROM MBEW
   WHERE MATNR GT_CKMLHD-MATNR
     AND BWKEY GT_CKMLHD-BWKEY
     AND LBKUM GT_CKMLHD-LBKUM
     AND SALK3 GT_CKMLHD-SALK3.

  IF SY-SUBRC NE 0.

* 자재원장과 값과 수량이 일치하지 않을 경우
    UPDATE MBEW
       SET LBKUM GT_CKMLHD-LBKUM
           SALK3 GT_CKMLHD-SALK3
     WHERE MATNR GT_CKMLHD-MATNR
       AND BWKEY GT_CKMLHD-BWKEY.
  ENDIF.

ENDLOOP.

'SAP > ABAP' 카테고리의 다른 글

newline 특수문자 제거하기  (0) 2012.07.04
데이터갱신 시 특수문자 제거  (0) 2012.07.03
TABLE LINE COUNT  (0) 2012.02.06
TRIM,REPLACE  (0) 2011.12.23