LOOP WHERE 절 개선
- 개선전
LOOP AT it_mseg WHERE spmon EQ p_month
AND werks EQ it_box-werks
AND charg EQ it_box-zboxno.
- 개선후
SORT IT_MSEG_PLANT BY SPMON WERKS CHARG.
READ TABLE IT_MSEG_PLANT WITH KEY SPMON = P_MONTH
WERKS = IT_BOX-WERKS
CHARG = IT_BOX-ZBOXNO
BINARY SEARCH TRANSPORTING NO FIELDS.
CHECK SY-SUBRC = 0.
LOOP AT IT_MSEG_PLANT FROM SY-TABIX.
IF IT_MSEG_PLANT-SPMON <> P_MONTH OR
IT_MSEG_PLANT-WERKS <> IT_BOX-WERKS OR
IT_MSEG_PLANT-CHARG <> IT_BOX-CHARG.
EXIT.
ENDIF.
....
....
ENDLOOP.
READ 문 개선
- 개선전
READ TABLE it_ztm3e300_tmp WITH KEY werks = it_ztm3e300-werks
zponor = it_ztm3e300-zponor.
- 개선후
SORT IT_ZTM3E300_TMP BY WERKS ZPONOR. <= 추가
READ TABLE it_ztm3e300_tmp WITH KEY werks = it_ztm3e300_plant-werks
zponor = it_ztm3e300_plant-zponor
BINARY SEARCH. <= 추가
MODIFY 문 개선
- 개선전
MODIFY it_hub50 TRANSPORTING wruser wrdate wrtime wrstatus
WHERE bukrs = w_hub50-bukrs
AND sndate = w_hub50-sndate
AND trnscd = w_hub50-trnscd
- 개선후
내부테이블을 SORTED TABLE 로 선언
DELETE 문 개선
- 개선전
LOOP AT IT_DEL
DELETE it_010 WHERE lotno = it_del-lotno.
DELETE it_011 WHERE lotno = it_del-lotno.
ENDLOOP
- 개선후
READ TABLE IT_010 WITH KEY LOTNO = IT_DEL-LOTNO
BINARY SEARCH TRANSPORTING NO FIELDS.
LOOP AT IT_010 FROM SY-TABIX.
IF IT_010-LOTNO <> IT_DEL-LOTNO.
EXIT.
ENDIF.
DELETE IT_010.
ENDLOOP.
Nested Loops
DATA : IVBAK LIKE VBAK OCCURS 0,
IVBAP LIKE VBAP OCCURS 0.
SORT : IVBAK BY VBELN,
IVBAP BY VBELN.
- 개선전
LOOP AT IVBAK.
LOOP AT IVBAP WHERE VBELN = VBAK-VBELN.
WRITE:/ IVBAK-VBELN, IVBAP-VBPOS, ...
ENDLOOP.
ENDLOOP.
- 개선후
LOOP AT IVBAK.
READ TABLE IVBAP WITH KEY VBELN = IVBAK-VBELN
BINARY SEARCH TRANSPORTING NO FIELDS.
LOOP AT IVBAP FROM SY-TABIX.
IF IVBAP-VBELN <> IVBAK-VBELN.
EXIT.
ENDIF.
WRITE:/ IVBAK-VBELN, IVBAP-VBPOS, ...
ENDLOOP.
ENDLOOP.
댓글 16
-
e-abap
2007.11.14 23:10
-
체인지
2007.11.20 20:30
좋은 자료 감사합니다 -
설탕수박
2007.11.23 20:47
좋은정보 감사합니다.
-
icarus
2007.12.05 17:38
아하...그렇군요...그래서 일전에 stadard 테이블을 sort 하지 않은 상태에서 binary search 하니까 분명히
인터널 테이블에 데이터가 있는데도 찾질 못했네요...^^
좋은 정보 감사합니다.
-
ABAP짱!
2007.12.06 20:06
감사합니다`~ ^^
-
초향이
2007.12.08 10:24
조흔은 정보 감사드리고요...binary search 새로이 알게 됐네요 -
동네이장
2008.08.20 05:40
감사합니다.. -
보물찾기
2008.09.10 03:07
감사합니다 ~~ -
흙
2008.09.17 20:03
필요할때마다 잘 쓰겠습니다..감사!!! -
bangbangtang
2008.09.20 08:30
감사합니다... 잘 보겠습니다... -
외계인
2009.01.09 02:23
좋은 정보 감사합니다.
-
용스
2009.01.10 00:57
abap 초보 입니다...
loop where절... sort 한후에 read table 하면 조건에 맞는 데이터 들이 맨 위에 위치하게 되는건가요?
그 후에 loop 에 from sy-tabix 가 어떻게 작동하는 거죠?
그러니깐 어떻게 속도가 계선 되어지는건지 궁금하네요 ^^;
-
박하사탕
2009.02.25 16:43
sort의 중요성이 느껴지네요..^^ 감사합니다.
-
indianhead
2009.12.23 00:57
좋은정보 감사합니다~~^^ -
SD임
2011.09.22 20:30
퍼갈게요 ㅎ 좋은정보 감사합니다^^
-
얌새이
2013.09.26 20:19
감사합니다
binary search의 원리를 추가합니다.