CORRESPONDING
Structure 및 Internal Table 값 복사
ABAP New syntax 인 CORRESPONDING은 MOVE-CORRESPONDING과 같이 같은 필드명의 값을 복사한다는 부분에서는 같지만, CORRESPONDING은 받는쪽 변수에서 매칭되지 않는 필드는 값이 초기화된다는 부분이 다릅니다.
또한, CORRESPONDING은 Internal Table끼리도 필드 매칭을 해서 값을 복사할 수 있습니다.
Internal Table에 사용시에는 "BASE" 구문을 이용하여 기존 Internal Table에 APPEND 형태로 값을 추가할 수 있습니다.
# 사용예시
TYPES: BEGIN OF T_TMP,
BUKRS TYPE T001-BUKRS,
VAL1(10) TYPE C,
END OF T_TMP.
DATA: LT_TMP TYPE STANDARD TABLE OF T_TMP.
DATA: LS_ORG TYPE T_TMP,
LS_T001 TYPE T001.
SELECT
*
FROM T001
UP TO 5 ROWS
INTO TABLE @DATA(LT_T001).
READ TABLE LT_T001 INTO LS_T001 INDEX 1.
* MOVE-CORRESPONDING 과 CORRESPONDING 의 차이
LS_ORG = VALUE #( BUKRS = '1000' VAL1 = 'TEST' ).
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(20)'Original', LS_ORG.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
MOVE-CORRESPONDING LS_T001 TO LS_ORG.
WRITE:/(20)'MOVE-CORRESPONDING', LS_ORG.
LS_ORG = CORRESPONDING #( LS_T001 ).
WRITE:/(20)'CORRESPONDING #', LS_ORG.
SKIP.
* Internal Table에 CORRESPONDING
LT_TMP = VALUE #( ( BUKRS = '1000' VAL1 = 'TEST' )
( BUKRS = '2000' VAL1 = 'TES2' ) ).
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(20)'CORRESPONDING 전', CONV STRING( LINES( LT_TMP ) ) && '건'.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
"1. Internal Table 초기화 후 INSERT
LT_TMP = CORRESPONDING #( LT_T001 ).
WRITE:/(20)'CORRESPONDING 후', CONV STRING( LINES( LT_TMP ) ) && '건'.
"2. Internal Table에 APPEND
LT_TMP = CORRESPONDING #( BASE ( LT_TMP ) LT_T001 ).
WRITE:/(20)'CORRESPONDING 후', CONV STRING( LINES( LT_TMP ) ) && '건'.
'ABAP > Syntax' 카테고리의 다른 글
[OpenSQL] WITH - CTE 서브쿼리 (0) | 2023.07.21 |
---|---|
[Syntax] FILTER - Internal table 데이터 필터링 (0) | 2023.07.20 |
[Syntax] CONV - 형 변환 (0) | 2023.07.19 |
[OpenSQL] OpenSQL Expressions (0) | 2023.07.19 |
[OpenSQL] Internal Table을 이용한 JOIN (FOR ALL ENTRIES 대체) (0) | 2023.07.18 |
댓글