Internal Table 레코드 수
Read Table
ABAP New syntax를 이용하여 좀더 간결하게 개발이 가능합니다
# 사용예시
DATA: LT_T001 TYPE SORTED TABLE OF T001 WITH UNIQUE KEY BUKRS,
LS_T001 LIKE LINE OF LT_T001,
LV_BUKRS TYPE T001-BUKRS,
LV_TABIX TYPE SY-TABIX.
SELECT
*
FROM T001
INTO CORRESPONDING FIELDS OF TABLE @LT_T001.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
** Internal table 레코드 수 -------------------------------------------------
"Old Syntax
DESCRIBE TABLE LT_T001 LINES LV_TABIX.
"New Syntax
LV_TABIX = LINES( LT_T001 ).
WRITE:/ LV_TABIX.
** Read Table - Index -------------------------------------------------------
LV_TABIX = 3.
"Old Syntax
READ TABLE LT_T001 INTO LS_T001 INDEX LV_TABIX.
"New Syntax
LS_T001 = LT_T001[ LV_TABIX ].
IF SY-SUBRC EQ 0.
WRITE:/ LS_T001.
ENDIF.
** Read Table - With Key ----------------------------------------------------
LV_BUKRS = 'AR01'.
"Old Syntax
READ TABLE LT_T001 INTO LS_T001 WITH TABLE KEY BUKRS = LV_BUKRS.
"New Syntax
LS_T001 = LT_T001[ BUKRS = LV_BUKRS ].
IF SY-SUBRC EQ 0.
WRITE:/ SY-TABIX.
ENDIF.
** Read Table - 레코드 존재 여부 체크 ---------------------------------------
LV_BUKRS = 'AR02'.
"Old Syntax
READ TABLE LT_T001 WITH TABLE KEY BUKRS = LV_BUKRS TRANSPORTING NO FIELDS.
IF SY-SUBRC EQ 0.
ENDIF.
"New Syntax
IF LINE_EXISTS( LT_T001[ BUKRS = LV_BUKRS ] ).
WRITE:/ 'OK'.
ELSE.
WRITE:/ 'NO'.
ENDIF.
** Read Table - Table index 찾기 --------------------------------------------
LV_BUKRS = 'BE01'.
"Old Syntax
READ TABLE LT_T001 WITH TABLE KEY BUKRS = LV_BUKRS TRANSPORTING NO FIELDS.
IF SY-SUBRC EQ 0.
LV_TABIX = SY-TABIX.
ENDIF.
"New Syntax
LV_TABIX = LINE_INDEX( LT_T001[ BUKRS = LV_BUKRS ] ).
WRITE:/ LV_TABIX.
'ABAP > Syntax' 카테고리의 다른 글
[OpenSQL] OpenSQL Expressions (0) | 2023.07.19 |
---|---|
[OpenSQL] Internal Table을 이용한 JOIN (FOR ALL ENTRIES 대체) (0) | 2023.07.18 |
[Syntax] VALUE - structure 와 internal table에 값 할당 (0) | 2023.07.18 |
[Syntax] COND, SWITCH 문 (SQL의 case문과 유사) (0) | 2023.07.18 |
[Syntax] REDUCE - 축소 연산자 (0) | 2023.07.12 |
댓글