Jin's Library

READ TABLE 본문

SAP/ABAP

READ TABLE

Linkin 2023. 11. 21. 00:31
READ TABLE itab TRANSPORTING NO FIELDS WITH KEY field = 'Condition'.

 

인터널 테이블 itab의 field가 'Condition' 인 데이터가 있는지 판별.
데이터가 있으면 sy-subrc = 0
해당 데이터의 index는 sy-tabix로 확인 가능. 데이터가 다건이라면 처음 찾은 index로 return.
into가 필요없어 Work Area 없이 사용 가능, 데이터 유무 판별용으로 사용한다.
DATA(lv_line) = line_index( itab[ field = 'Condition' ] ). 로 대체가능 (New Syntax)
IF lv_line IS INITIAL. 이 True이면 데이터가 없음.

 

 

READ TABLE itab INTO DATA(ls_itab) WITH KEY field = 'Condition' BINARY SEARCH.


인터널 테이블 itab의 field가 'Condition' 인 데이터를 ls_itab에 저장.
정상적으로 데이터를 저장하면 sy-subrc = 0, 찾지 못하면 4, Binary Search 옵션으로 찾지 못하면 8.
Binary search를 하면 퍼포먼스가 좋다. 하지만 field값으로 sorting 되어있어야 한다.
DATA(ls_itab) = VALUE #( itab[ field = 'Condition' ] OPTIONAL ). 로 대체가능 (New Syntax)
OPTIONAL 이 없다면 만약 데이터가 없을때 덤프발생, 취향에 맞게 활용.

 

 

READ TABLE itab ASSIGNING FIELD-SYMBOL(<FS_Itab>) WITH KEY field = 'Condition' BINARY SEARCH.


Assigning을 이용해 필드심볼에 바로 할당 가능. 
sy-subrc로 상태 확인을 해줘야한다. 덤프가 발생하지 않음.

 

 

READ TABLE itab INTO DATA(ls_itab) INDEX N.

 

인터널 테이블 itab의 index가 N 인 행을 가져옴.
DATA(ls_itab) = itab[ N ].  으로 대체가능 (New Syntax)

'SAP > ABAP' 카테고리의 다른 글

SAP GUI Data Browser 변경 - ALV  (0) 2023.12.12
SAP GUI 바로가기 설정  (0) 2023.12.12
SELECT 시 인터널 테이블을 조건으로 사용할 때  (4) 2023.11.20
프로그램 실행 후 바코드 입력  (0) 2023.11.03
F4_DATE  (0) 2023.11.03