반응형
ABAP 레인지변수(Range) 다양하게 쓰다보니 관련 포스팅이 자꾸 늘어나는 것 같습니다 :)
오늘은 레인지변수 다양한 활용(?) 하는 선언문을 포스팅하고자 합니다.
우선 본론으로 들어가기 전에,
레인지변수(Range)란?
* ABAP에서 자주 쓰는 문법으로 쉽게 설명한다면 '테이블 구조'를 가질 수 있는 문법이라고 생각하시면 이해하기 쉬울 것입니다.
레인지변수에 대한 설명을 모르시면 아래의 링크를 참조해주세요.
1. 레인지변수 선언 예시
2. 레인지변수 LOOP 및 BASE 활용
설명:
#1. 많은 레인지변수 선언 방식 중의 하나로서 3개의 테이블 구조를 가진 lr_range 선언
각 데이터 값도 상수로 선언 '123', '456',789'
#2 SFLIGHT 테이블의 총 행수 대략 356행
#2-1, #2-2 를 걸쳐서 이미 lr_carrid 변수는 총 합이 712
이 상태에서 #2-3을 거치면 #2-1, #2-2 같은 역할을 하게 됩니다.
결과적으로 문법이 간략해지는 것이죠
결과적으로 356 * 3 ==>> lr_range 변수에 담긴 것입니다.
"1. DATA 선언 <==
DATA(lr_range) = VALUE RSDSSELOPT_T( sign = 'I' OPTION = 'EQ'
( LOW = '123' )
( LOW = '456' )
( LOW = '789' )
).
"2. LOOP 레인지변수
DATA: lr_carrid TYPE RSDSSELOPT_T,
ls_carrid TYPE RSDSSELOPT.
SELECT * INTO TABLE @DATA(lt_sflight)
FROM SFLIGHT.
"#2-1 레인지변수 다양한 활용 예시
LOOP AT lt_sflight INTO DATA(ls_sflight).
ls_carrid-SIGN = 'I'.
ls_carrid-OPTION = 'EQ'.
ls_carrid-LOW = ls_sflight-CARRID. "SFLIGHT 테이블의 CARRID 항송사 코드를 레인지변수 ls_carrid 담는다.
APPEND ls_carrid TO lr_carrid.
ENDLOOP.
"#2-2 레인지변수 다양한 활용 예시
LOOP AT lt_sflight INTO ls_sflight.
ls_carrid = VALUE #( SIGN = 'I' OPTION = 'EQ' LOW = ls_sflight-CARRID ).
APPEND ls_carrid TO lr_carrid.
ENDLOOP.
"#2-3 레인지변수 다양한 활용 예시
LOOP AT lt_sflight INTO ls_sflight.
lr_carrid = VALUE #( BASE lr_carrid SIGN = 'I' OPTION = 'EQ'
( LOW = ls_sflight-CARRID )
).
ENDLOOP.
끝.
반응형
'SAP > ABAP' 카테고리의 다른 글
SAP 파일 웹 저장소 T-CODE: SMW0 (0) | 2022.04.18 |
---|---|
SAP CTS 클라이언트간 CTS 이관 및 데이터전송 (0) | 2022.03.17 |
SAP ABAP REFRESH NOT WORKING DYNAMIC OUTPUT (1) | 2021.06.10 |
ABAP WAIT UP TO 1 SECONDS (1) | 2021.06.08 |
ABAP GUI title 동적 변경하기 (1) | 2021.04.21 |
댓글