2025-09-08
[SAP/ABAP] FOR ALL ENTIRES 주의점, 데이터가 사라졌을 때
FOR ALL ENTIRES는 SELECT 한 결과 필드를 자동으로 중복제거한다.
EX)
SELECT DOCID ITEMID DOCCAT FROM ZTABLE
INTO CORRESPONDING FIELD OF TABLE GT_TAB
FOR ALL ENTRIES IN LT_RESULT
WHERE DOCID = LT_RESULT-DOCID
AND ITEMID = LT_RESULT-ITEMID
AND DOCCAT = LT_RESULT-DOCCAT.
- ZTABLE DB

- FOR ALL ENTRIES 후

DOCID ITEMID DOCCAT 으로 중복제거 되는걸 확인 할 수 있다.
SELECT DOCID ITEMID DOCCAT SEQ FROM ZTABLE
INTO CORRESPONDING FIELD OF TABLE GT_TAB
FOR ALL ENTRIES IN LT_RESULT
WHERE DOCID = LT_RESULT-DOCID
AND ITEMID = LT_RESULT-ITEMID
AND DOCCAT = LT_RESULT-DOCCAT
- 결과값

중복제거 안됨!
FOR ALL ENTIRES를 쓸 땐 KEY 값으로 SELECT 하자!