ERP/SAP/R/3

필드 심볼

파란실버라이트 2011. 7. 19. 09:26

1. GLT0 같은 테이블의 동적 변수를 선언할 때

ex) concatenate 'TSL' <cont 변수> into lv_변수.

assign (lv_변수) to <fs>.

2. WA_ASDFLASKDFJLK 같은 긴 네이밍을 <WA> 같은 간단한 네임으로 재 정의 해 줄 때

-> 필드 심볼의 상징성

ex) WA_ASDFLASKDFJLK-CARRID = 'AA'.

WA_ASDFLASKDFJLK-CONNID = '12'.

CONCATENATE WA_ASDFLASKDFJLK-CARRID 'TEST' INTO LV_TEXT.

<WA>-CARRID = 'AA'.

<WA>-CONNID = '12'.

CONCATENATE <WA>-CARRID <WA>-CONNID INTO LV_TEXT.

3. 값을 동적으로 변경시켜 주는 것(BEST REASON!!)

EX)

* 기존 프로그램 로직

LOOP AT GT_ITAB1.

IF GT_ITAB1-CARRID = ‘AA’.

GT_ITAB1-PRICE = 0.

MODIFY GT_ITAB1.

TRANSPORTING PRICE.

ENDIF.

ENDLOOP.

* 필드심볼 사용 예

LOOP AT GT_ITAB1 ASSIGNING <WA>.

IF <Wa>-carrid = ‘AA’.

<Wa>-price = 0.

ENDIF.

ENDLOOP.

기타 알아 둘 내용들...

* 필드 심볼을 선언 할 때, 선언할 타입을 모를 경우 외에는 ANY 를 사용하지 않는다.

Read Table lt_sflight ASSINGING <Wa> with key carrid = ‘AA’.

<Wa>-price = 0.

Unassign <wa>. -> 필드심볼 해제