안녕하세요.
최근 업데이트된 new abap에서
인덱스 체크로직을 어떻게 구성 가능한지
변경된 부분들 포스팅 해볼께요.
OLD ABAP
이전 구 abap에서는
select single / select count 문이나 read table 문의 결과 값이
0인 경우에만 인덱스 체크를 수행했습니다.
DATA : lt_base TYPE TABLE OF SFLIGHT.
DATA : L_OLD_CNT TYPE I.
SELECT CARRID CONNID
INTO CORRESPONDING FIELDS OF TABLE LT_BASE FROM SFLIGHT WHERE CARRID = ‘AA’.
DESCRIBE TABLE lt_base LINES l_old_cnt.
IF lt_base[] IS NOT INITIAL.
ENDIF.
DATA : l_old_idx TYPE SY-TABIX.
READ TABLE lt_base WITH KEY CARRID = ‘AA’
CONNID = ‘0064’
TRANSPORTING NO FIELDS.
IF SY-SUBRC EQ 0.
l_old_idx = SY-TABIX.
ENDIF.
구 버전의 abap에서 인덱스 체크를
new abap 에서는 훨씬 간단하게
체크 가능하게되었는데요.
아래 비교 로직 보시죠.
NEW ABAP
DATA(l_new_cnt) = LINES( lt_base ).
IF LINE_EXISTS( lt_ase[ 1 ] ).
ENDIF.
DATA(l_new_idx) = LINE_INDEX( lt_base[ CARRID = ‘AA’ CONNID = ‘0064’ ] ).