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>. -> 필드심볼 해제
[출처] 필드 심볼의 3가지 기능!|작성자 파이어뱃