일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 미스터동
- 예금자보호한도
- 경제뉴스레터
- 회계원리개념
- 뉴닉
- 서울아파트
- 머니네버슬립
- 재경관리사개념
- 엔비디아
- 뉴스레터추천
- 재무상태표
- 뉴스레터정리
- 오물풍선
- 쉬인
- 트럼프
- 바이든
- 회계원리
- SAP CO
- 회계원리 개념
- 뉴스레터
- 어피티
- 파리올림픽
- 계약갱신청구권
- 트럼프당선
- 비트코인
- 오픈AI
- 리비안
- TSMC
- 재경관리사원가회계
- 돈키레터
- Today
- Total
ASAP
[ABAP] CLEAR vs REFRESH vs FREE 본문
ABAP개발을 하다보면, 인터널테이블의 Header/ Body를 지워야 할 때가 있다.
종류는 CLEAR, REFRESH, FREE가 있을텐데,
처음에는 이 세 개가 헷갈려 잘못 사용하는 경우도 있을 것이다.
헷갈려 하는 분들을 위해 이 글을 정리한다.
물론,
이 사용법을 제대로 숙지하기 위해서는 인터널테이블에서 헤더라인이 있는 경우와 없는 경우의 차이점부터 제대로 알아야 한다.
1. CLEAR
1-1) 헤더라인이 있는 경우
CLEAR itab : Header line만 지움( Body는 안 지움 )
CLEAR itab[ ] : Body만 지움
1-2) 헤더라인이 없는 경우
CLEAR itab : Body를 지움
2. REFRESH
CLEAR와 비슷하나, 테이블의 body만 지운다.
REFRESH itab = CLEAR itab[ ].
3. FREE
REFRESH와 비슷하나, 테이블 body만 참조하는 거 외에
FREE는 테이블 body에 할당된 메모리를 초기화시킨다.
다시 인터널테이블에 데이터를 넣으려면, 새로운 메모리가 할당돼야 한다.
실제로 디버깅을 걸어서 확인해보면 하단 이미지와 같이 할당된 메모리가 삭제되는 걸 확인할 수 있다.
정리
C1/Case 1 [헤더라인 없는 경우] DATA: itab1 TYPE STANDARD TABLE OF sflight.
C2/Case 2 [헤더라인 있는 경우] DATA: itab2 TYPE sflight OCCURS 0 WITH HEADER LINE.
테이블 내용 초기화 |
Work Area / Structure 참조 |
테이블 Content / 테이블 Body 참조 |
테이블 Header 메모리 초기화 |
테이블 Body 메모리 초기화 |
|
CLEAR | [C1] CLEAR itab [C2] CLEAR itab[ ] |
[C1] x [C2] CLEAR itab |
[C1] O [C2] CLEAR itab[ ] |
x | x |
REFRESH | REFRESH itab | x | O | x | x |
FREE | FREE itab | x | O | x | O |
http://sap-isu-abap.blogspot.com/2010/01/clear-vs-refresh-vs-free.html
'SAP(ABAP) > 문법' 카테고리의 다른 글
[ABAP] Virtual Sort 하는 법, sort 할 때 key 다르게 설정하는 법 (0) | 2023.06.07 |
---|---|
[ABAP] LOOP AT GROUP BY 사용법 + 예제 (0) | 2023.03.07 |
[SAP/ABAP] ALV Subtotal 맨 위에 표기 (0) | 2023.01.11 |