-
[ABAP] 인라인 데이터와 동적 검색의 충돌(with. Field-symbol)SAP/ABAP 2025. 3. 26. 09:05
인라인 데이터란?
DATA 선언을 TOP에서 진행하는 것이 아닌 아래와 같이 SELECT 구문에서 선언과 할당을 동시에 하는 구문을 말합니다.
SELECT * FROM (p_tn) INTO TABLE @DATA(gt_output).
위 구문을 처음 봤을 때는 굉장히 똑똑한 코드라고 생각습니다. 하지만 막상 실행 시키면 다음과 같은 오류를 받을 수 있다.
ZED01_R3_FS01 Line 96: Inline data declarations are possible only if projection list, INDICATORS clause, and FROM clause are specified statically and all host variables are typed as non-generic.
얼핏보면 동적으로 동작할 거 같지만 인라인 데이터는 컴파일 시점에 동작하기에 TYPE이 명확해야 합니다. 따라서 위의 FROM 절이 동적으로 구성(어떠한 TYPE인지 컴파일 시점에는 모름)되어 있어 오류가 발생하는 것을 확인할 수 있습니다.
이를 해결하기 위해 컴파일 시점이 아닌 런타임 시점에 TYPE을 선언하는 Field-Symbol을 사용해 오류를 해결했습니다.
CREATE DATA lr_tab TYPE TABLE OF (p_tn). ASSIGN lr_tab->* TO <fs_table>. SELECT * FROM (p_tn) INTO TABLE @<fs_table>.
'SAP > ABAP' 카테고리의 다른 글
[ABAP] 메일 보내기(by. naver) (1) 2025.03.25 [ABAP] Lock Object (0) 2025.03.25 [ABAP] Search Help 종류와 우선순위 (0) 2025.03.25 [ABAP] 나만의 Unit Type 만들기 (0) 2025.03.25 [ABAP] Element Domain 수정 시 에러 해결 (0) 2025.03.25