I Agree Line Smiley

SAP/New Syntax

ABAP New Syntax - Read Table

지코딩 2023. 4. 17. 15:28

오늘은 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