쌓고 쌓다

[ABAP] CREATE DATA, 동적 Internal Table에 Insert하기 본문

SAP/ABAP

[ABAP] CREATE DATA, 동적 Internal Table에 Insert하기

승민아 2026. 1. 9. 00:00
반응형

https://non-stop.tistory.com/870

지난 포스팅에서 동적 ALV 필드를 구성하는 코드 중에

ASSIGN COMPONENT하는 부분 CREAT DATA에 대해서 모르겠어서

이해할 수 있도록 단계적 필요 개념과 결과코드를 정리해 보았다.

 

CREATE DATA

변수를 참조하는 오브젝트를 생성하는 구문이다.

 

@DREF→* (역참조라고 부름) : CREATE DATA로 메모리 위치가 할당되면 그 값을 DREF가 갖게 된다. *로 가리키는 그 메모리 위치를 INTO절에 작성해서 결과를 받는 것이다.

DREF→필드명 : DFEF를 참조하여 값을 꺼냄

 

[TYPE|LIKE DTYPE]으로 타입을 지정하는 경우 자동으로 타입 변환된다.

 

 

예를 들어보자면

ANY 타입으로 선언했지만 SCARR 타입으로 지정할 수 있다.

 

필드 심볼 생성과 ASSIGN하는 법

 

CREATE DATA하고 필드 심볼에 할당하는 법

왜 데이터 참조(Data Reference)를 사용할때 필드 심볼을 사용하는 과정을

거쳐야하는지 몰랐었는데

 

다음과 같이 데이터 참조 변수를 동적으로 Generic Type으로 생성했을때

DATA dref TYPE REF TO DATA.
CREATE DATA dref TYPE ('PERSON').

dref->name = '홍길동'.

구조체의 필드에 접근하면 에러 메시지가 발생한다.

 

"This generic reference cannot be dereferenced (->) at the current statement position."

 

그래서 타입이 정해지지 않은 데이터 참조 변수는 필드 심볼을 활용해야한다.

 

동적 ITAB에 WA 만들어 Insert 하기

동적으로 구성된 Internal Table과

그 Internal Table의 WA를 만들어 Internal Table에 넣는 방법을 이제

이해할 수 있을 것이다.

 

 

 

 

 

반응형