본문 바로가기

Ⅰ. ERP/6. 에러해결

[SAP ABAP] LOOP itab1 .. MODIFY itab2. ENDLOOP. 안됨

728x90
LOOP itab1.

  modify itab2 ... where field1 = itab1-field1.
  
ENDLOOP.

 

itab1을 LOOP돌면서 itab1의 필드에 대한 조건으로 itab2의 값을 modify 하고 싶었다.

근데 자꾸 DUMP남

 Error in an ABAP statement (processing an internal table).

 

어떤 itab1에 대한 LOOP 안에서 다른 itab에 대한 modify를 하면 나는 dump라고 함.

 

 

그래서 필드심볼을 써서 해결함.

LOOP AT LT_DATA INTO LS_DATA.


*      UPDATE itab2
*       SET field1 = 'X'
*      WHERE ....

**********************************************************************
      READ TABLE itab2 ASSIGNING <itab2>
                                  WITH KEY  field2 = LS_DATA-field2
                                            field3 = LS_DATA-field3.
      IF SY-SUBRC = 0.
        <itab2>-field1 = 'X'.
*        modify itab2 from itab2.
        UNASSIGN :  <itab2>.
      ENDIF.

update / modify 대신 field symbol을 사용하면 속도도 향상되고 좋음

 

 

728x90