본문 바로가기

Ⅰ. ERP/1. ABAP

[SAP ABAP] field symbol로 itab에 값 삽입

728x90

나는 프로젝트를 하다보면 부족한 점들을 많이 느낀다.

그래서 주변 시니어 개발자분들께 여쭤보거나 구선생님께 물어본다. 

설명 들은 부분을 바로 손으로 적고 이해가 안가는 부분에 대해 다시 쓰면서

내 머릿속에 정리를 한다. ( 그래도 이해안가면 조심스럽게 수첩을 들고가서 재질문하고....)

 

필드심볼을 공부할 시절, 튜닝을 담당했을때 필드심볼로 internal talble에 데이터를 넣고 싶었다.

그래서 배운 구문이다.

"GT_ITEM에 빈공간을 만들고 <GT_ITEM>의 메모리를 연결한다."
Append initial line to GT_ITEM assigning <GT_ITEM>.

"IT_BSIS의 데이터를 <GT_ITEM>에 넣는다."
Move-corresponding IT_BSIS to <GT_ITEM>

UNASSIGN <GT_ITEM>.

 

Append initial line to GT_ITEM assigning <GT_ITEM>.

 

* 먼저 공간을 만들고 값을 넣기 때문에 확실히 append할 때 ( 조건문으로 경우 나누기)

* 반드시 append 구문 먼저 쓰기 

 

예제) IT_BSIS의 값을 GT_ITEM에 넣기. ( append 필요 없는경우 조건문 사용 & continue 활용하기)

LOOP AT IT_BSIS WHERE BLDAT IN S_BLDAT AND ZUONR IN S_ZUONR.
          PERFORM REVERSE_CHECK USING IT_BSIS-BELNR IT_BSIS-GJAHR ZCHK.
          IF ZCHK = 'X'. CONTINUE.  ENDIF.

          IF ( P_TEXT1 NE '' AND IT_BSIS-SGTXT CS P_TEXT1 ) .
            APPEND INITIAL LINE TO GT_ITEM ASSIGNING <GT_ITEM>.
            MOVE-CORRESPONDING IT_BSIS TO <GT_ITEM>.
            <GT_ITEM>-HWAER = GV_HWAER.
            <GT_ITEM>-ZEMPSITE = P_USER.
            <GT_ITEM>-ZEMPNO   = P_EMPNO.
*            APPEND GT_ITEM. CLEAR GT_ITEM.
            UNASSIGN <GT_ITEM>.
          ENDIF.
        ENDLOOP.
728x90