728x90
구 신택스 같은 경우 일일히 한 줄씩 적으면서 할당해줘야 했다.
ls_struct-col1 = 1.
ls_struct-col2 = 2.
신 문법에서는 VALUE를 통해 한 줄로 기존 값을 할당해주고 추가 해줄 수 있게 되었다.
TYPES : BEGIN OF ls_struct,
col1 TYPE i,
col2 TYPE i,
END OF ls_struct.
*lt_table TYPE TABLE OF ls_struct WITH EMPTY KEY.
types l_t_type type table of ls_struct WITH NON-UNIQUE key col1.
**********************************************************************
* 값을 할당하겠다. ( 초기값 설정 )
* # : 피 연산자 type ( itab )
* itab 에 itab의 type으로 데이터 넣겠다.
**********************************************************************
DATA itab TYPE l_t_type.
itab = VALUE #( ( col1 = 2 col2 = 4 )
( col1 = 3 col2 = 4 ) ).
* base1 를 자동으로 선언하고 레코드 입력.(VALUE하고 type형)
DATA(base1) = VALUE l_t_type( ( col1 = 5 col2 = 5 ) ).
*BASE를 사용하면 BASE 뒤의 table 에 값을 추가로 삽입
DATA(itab2) = VALUE #( BASE base1
( col1 = 2 col2 = 20 )
).
DATA(itab4) = VALUE l_t_type( BASE base1
( col1 = 10 col2 = 20 )
).
itab = VALUE #( col1 = 4 ( col2 = 4 ) ( col2 = 5 ) ).
VALUE#() : 초기값을 할당하겠다.
# : 피 연산자 type ( 변수가 기존에 선언이 되어 있어야 사용가능)
itab = value # ( ... ) : itab에 itab의 type으로 ,,,데이터를 할당하겠다.
초기 값을 (2,4) (3,4) 로 할당하였다.
그리고 다음 라인에 itab = value # ( ... ) 인 초기값 할당하는 구문을 넣었을 때,
데이터 삽입이 아닌 초기값이 새로 할당되는 것을 볼 수 있다.
base1은 기존에 선언되어 있지 않으므로
처음에 선언해준 type을 지정해주고 BASE1을 선언 후, 값을 할당한다.
BASE 구문을 이용하여 BASE1 의 값에 기초하여 값을 추가하고 itab4에 할당해주는 구문이다.
DATA(itab4) : itab 선언
Value l_t_type : l_t_type 의 type으로 만들거임
BASE base1 : 값은 base1 의 값을 기존값으로 쓸거임
( col1 = 10.... ) : 추가로 ,,, 값을 넣을 거임
BASE1의 기본값 (5,5)에서 (10,20)이 추가되어 ITAB4 가 생성되었다.
728x90
'Ⅰ. ERP > 1. ABAP' 카테고리의 다른 글
[SAP ABAP] 테이블 T100에서 메세지 가져오기 (편리 good) (0) | 2022.12.09 |
---|---|
[SAP ABAP] 타 프로그램의 서브루틴 활용하기. (0) | 2022.12.09 |
[SAP ABAP] 텍스트 정의 방법 ( 텍스트 기호 ) (0) | 2022.11.28 |
[SAP ABAP] CALL SCREEN, SET SCREEN (0) | 2022.11.24 |
[SAP ABAP] 효율적인 코딩법(튜닝) (1) | 2022.11.21 |