오늘은 ABAP New Syntax(아밥 신문법) 그중 Read Table에 대해 정리해 보겠습니다.
Read Table은 Internal table을 조회하는 구문으로 New-Syntax를 통해 효율적인 구문을 작성할 수 있습니다.
New Syntax - Read Table
1. INDEX
예전 구문에서는 Read Table에 Index를 이용하여 구조체에 테이블 데이터를 입력했습니다.
하지만 신문법을 사용하여 wa = itab[ idx ] 를 사용하여 Read table과 같은 결과를 얻을 수 있습니다.
( 시스템 인덱스도 사용할 수 있습니다.)
2. TRANSPORTING NO FIELDS
예전 구문에서 ITAB에 데이터 유무를 판단하는 로직이 있었습니다.
이 구문도 신문법을 사용하여 같은 효과를 줄 수 있습니다.
wa = line_index( itab[ field = 'data' ] ) 를 사용하여 TRANSPORTING NO FIELDS와 같은 결괏값을 얻을 수 있습니다.
3. Table → Structure
예전 구문에서는 ITAB의 KEY값을 이용하여 테이블의 데이터를 구조체로 옮기는 구문을 Read Table로 구현하였는데 신문법으로도 같은 결과를 만들 수 있습니다.
wa = value #( itab[ field = 'data' ] optional ). 구문으로 Key값을 기준으로 테이블의 데이터를 구조체로 옮길 수 있습니다.
이때 OPTIONAL을 사용하지 않아도 구문이 동작하는 것처럼 보입니다.
하지만 OPTIONAL을 사용하지 않고 구문을 사용하면 테이블의 원하는 데이터가 없을 때 덤프에러가 발생하므로 OPTIONAL을 사용해야 합니다.
4. Structure → Table
Read Table을 사용하여 KEY값을 기준으로 데이터를 Modify 하는 구문 또한 신문법으로 커버할 수 있습니다.
itab[ field = 'data' ]-field2 = 'data2' 구문을 통해 modify와 동일한 결과를 얻을 수 있습니다.
위 사진의 NEW 구문을 보면 lt_data에 matnr이 FGK001인 레코드의 ledat를 오늘 날짜로 변경한다고 해석할 수 있습니다.
이 구문의 특징은 테이블 자체로 변경하기 때문에 구조체가 필요 없고 key값으로 레코드를 선정하기 때문에 인덱스 또한 필요가 없습니다.
( 인덱스가 없는 Hash table에서 유용하게 사용할 수 있을 것 같습니다. )
[ ABAP NewSyntax 다른 글]
2023.02.27 - [SAP/New Syntax] - ABAP 문자열 합치기( CONCATENATE New-Syntax )
ABAP 문자열 합치기( CONCATENATE New-Syntax )
안녕하세요! 지코딩입니다. 오늘은 ABAP에서 문자열을 합치는 방법에 대해서 포스팅하겠습니다. PART 1. 사용법 먼저, 간단한 구문을 활용해 사용법을 알아보겠습니다. 로직을 통해 lv_text 라는 변
zcoding1.tistory.com
'SAP > New Syntax' 카테고리의 다른 글
ABAB NEW-SYNTAX : VALUE(BASE) 구문 사용법 (0) | 2024.07.01 |
---|---|
ABAP 문자열 합치기( CONCATENATE New-Syntax ) (0) | 2023.02.27 |