0v0__DEV

[10] ABAP LINE_EXISTS 본문

SAP BASIC

[10] ABAP LINE_EXISTS

0v0_삐약 2024. 8. 22. 10:43
728x90

1. 사용

인터널 테이블에 특정 데이터를 가진 행이 있는지 확인할 때 사용 

 

2. 유사 

Read Table with key -> Check Sy-subrc 

 

3. 구문

1) xsdbool( line_exists( ) ). 

2) IF line_exists( ). 

 

4. 예시 코드 

: lt_carrid에는 SCARR에 존재하는, carrid 가 AA, AB, AC,AD,AF 인 데이터가 들어있다

SELECT *
  FROM scarr
   WHERE carrid IN ( 'AA', 'AB', 'AC', 'AD' ,'AF' )
  INTO TABLE @DATA(lt_carrid).

 

 DATA(lv_exists) = xsdbool( line_exists( lt_carrid[ carrid = 'SQ' ] ) ).

DATA(lv_exists) = xsdbool( line_exists( lt_carrid[ carrid = 'SQ' ] ) ).
IF lv_exists IS NOT INITIAL.
  WRITE 'EXISTS'.
ELSE.
  WRITE 'NO-EXISTS'.
ENDIF.

 

LT_CARRID에 'SQ'인 데이터가 존재하지 않기 때문에 ,  lv_exists 에는 값이 없고, 결과는 NO-EXISTS가 나온다 

 


IF line_exists( lt_carrid[ carrid = 'AA' ] ).

IF line_exists( lt_carrid[ carrid = 'AA' ] ).
  WRITE : 'LINE_EXISTS'.
ENDIF.

'AA'인 데이터가 존재하기 때문에, 'LINE_EXISTS' 가 출력된다. 

 


참고 READ TABLE

READ TABLE lt_carrid TRANSPORTING NO FIELDS with key carrid = 'AA'.
IF sy-subrc = 0.
  WRITE : 'DATA EXISTS'.
ENDIF.

 

 

 

 

 

 

 

 

728x90