[SAP] RANGE

SAPCO·2024년 5월 24일

0. 도입

  • 여러줄 또는 범위를 입력받기 위해 사용.

1. 선언

  • Range 변수를 선언하면 4개의 필드를 가진 Internal Table이 된다.
RANGES lr_matnr FOR mara-matnr.
DATA lr_matnr TYPE RANGE OF matnr.
DATA lr_matnr LIKE RANGE OF mara-matnr.
DATA : BEGIN OF lr_matnr OCCURS 0,
			sign TYPE ddsign,
            option TYPE ddoption,
            low LIKE mara-matnr,
            high LIKE mara-matnr,
       END OF lr_matnr.

2. 구조

  • LOW/HIGH
    • 참조한 변수와 같은 유형으로 선언된다.
  • SIGN
  • OPTION

3. 사용

* 테이블의 조건
SELECT *
  INTO TABLE lt_mara
  FROM mara
 WHERE matnr IN lr_matnr.

* 조건문에서 사용
 LOOP AT lt_data.
 	IF lt_data-matnr IN lr_matnr.
    ENDIF.
 ENDLOOP.

4. Option-CP

  • CP는 SQL문에서 LIKE 구문과 같은 동작.
  • 와일드카드로 sql은 %, Range변수는 *를 사용.
  • EX) 1로 시작하는 모든 데이터를 읽기.
SELECT *
  INTO TABLE lt_mara
  FROM mara
 WHERE matnr LIKE '1%'.
 
 lr_matnr-sign = 'I'.
 lr_matnr-option = 'CP'.
 lr_matnr-low = '1*'.
 lr_matnr-high = ''.
 
 SELECT *
   INTO TABLE lt_mara
   FROM mara
  WHERE matnr IN lr_matnr.

참고
https://stepwith.tistory.com/entry/SAP-ABAP-%EA%B0%95%EC%A2%8C-24-Range-%EB%B3%80%EC%88%98

profile
SAP CO

0개의 댓글