SAP/기초 지식

SAP COLLECT 구문 정리

에이쌥 2024. 2. 29. 17:17
반응형

 

나는 테이블이 상태에도 COLLECT 문이 적용이 될 줄 알았다..

COLLECT 문을 사용하려면 무조건 인터널 테이블이 두개 있어야함.

(조인 할 테이블 1개, 조인 기준이 되는 테이블1개)

 

이게 만약 LT_EKBE 테이블이라면

 

(데이터 다 때려넣는 테이블)

 DATA:BEGIN OF LT_EKBE OCCURS 0,
   EBELN  LIKE EKBE-EBELN,  
   EBELP LIKE EKBE-EBELP
   MENGE LIKE EKBE-MENGE
   SHKZG LIKE EKBE-SHKZG,    
   GJAHR  LIKE EKBE-GJAHR,
   BELNR  LIKE EKBE-BELNR,
   BUZEI  LIKE EKBE-BUZEI,
 END OF  LT_EKBE.

 

기준이 될 테이블. CT_EKBE

 

(데이터 다 때려넣는 테이블을 COLLECT할 테이블)
  DATA:BEGIN OF CT_EKBE OCCURS 0,
     EBELN  LIKE EKBE-EBELN,  
     EBELP  LIKE EKBE-EBELP,    
     MENGE LIKE EKBE-MENGE
  END OF  CT_EKBE.

 

 

*... PO 입고 이력체크
  SELECT INTO CORRESPONDING FIELDS OF TABLE LT_EKBE
   FROM EKBE
   FOR ALL ENTRIES IN STAB
 WHERE EBELN =  STAB-EBELN
    AND BEWTP 'E'.

  IF LT_EKBE[] IS NOT INITIAL.

    CLEAR:LV_MESSAGE.

    LOOP AT LT_EKBE.
      MOVE-CORRESPONDING LT_EKBE TO CT_EKBE .
      IF LT_EKBE-SHKZG 'H'.
        CT_EKBE-MENGE CT_EKBE-MENGE * -1.
      ENDIF.
      COLLECT CT_EKBE.   CLEAR CT_EKBE .
    ENDLOOP.

    LOOP AT  CT_EKBE  WHERE MENGE > 0.
      CONCATENATE
      CT_EKBE-EBELN 'This PO has already history of Warehousing.'
      INTO LV_MESSAGE SEPARATED BY SPACE.
      EXIT.
    ENDLOOP.

 


 

위 노란색 색칠한 CT_EKBE 헤더를 기준으로 밑에 아이템들이 COLLECT됨.

COLLECT는 문자타입 필드를 기준으로 숫자타입의 필드를 SUM 하는 기능

I,P,F TYPE 만 COLLECT 가 된다

반응형