# FIELD SYMBOL( 필드심볼 )에 대해서
- ABAP 프로그램 내에서 동적으로 Data를 선언할 수 있다.
- 필드심볼은 메모리를 점유하는 것이 아닌 주소만 가지고 있다.
- 필드 심볼은 모든 Data Object 선언이 가능하다.
. . . 등등..
사실 FIELD SYMBOL에 대한 내용들은 엄청 많다.
개념은 이 정도까지만 넘어가는 걸로 하겠다.
우리가 알아야 할 것은 언제 사용하는가, 왜 사용하는가...이다.
FIELD-SYMBOL( 필드 심볼 ) = "동적"이다.
즉, FIELD-SYMBOL( 필드 심볼 )은 동적 사용 할 때 쓰인다.
FIELD SYMBOL( 필드 심볼 ) 선언
# 필드 심볼을 선언할 때에는 그냥 선언, ANY, Object 선언... 이런 식으로 여러 가지로 선언할 수가 있다.
이것에 따라 차이점이 분명히 있기 때문에 알고 넘어가는 게 좋다.
# FIELD SYMBOL TYPE 선언할 때 참고 바란다.
2022.10.05 - [.SAP/..ABAP] - SAP Field Symbol Type 정리
# LOOP문에 쓰이는 INTO 대신... FIELD SYMBOL( 필드심볼 )..?
# FIELD SYMOBOL을 쉽게 이해하기 위해서는 이것부터 알아야 한다.
단순하게 생각해서 이렇게 생각해 보자.
LOOP문을 사용하면서 INTO와 Modify를 사용해왔지만,
필드심볼을 사용했을 때에는 Only ASSIGNING로 변경 됐다고 생각해 보자.
INTO, Modify => Assigning
1. INTO = FIELD SYMBOL( 필드심볼 )
위에서 말했듯이 INTO를 Assigning으로 변경
MOVE,
MOVE-CORRESPONDING,
APPEND 등
INTO에서 사용했던 것을 똑같이 FIELD SYMBOL에서도 사용할 수 있다.
예를 들어서)
MOVE GS_LIST TO LT_LIST. => MOVE <FS_LIST> TO LS_LIST.
MOVE-CORRESPONDING GS_LIST TO LS_LIST. => MOVE-CORRESPONDING <FS_LIST> TO <LS_LIST>
이런 식으로 사용할 수 있다는 것이다.
2. 따로 인터널 테이블을 업데이트( Modify )를 하지 않아도 된다
참고. FIELD SYMBOL을 사용할 때에는 "MODIFY"를 사용하지 않아도 된다는 점.
중요
FIELD SYMBOL( 필드 심볼 )에서는 <FS_LIST> 값을 넣으면 자동으로
바로 GT_LIST에 MODIFY 된다는 것을 알아야 한다.
# 그 이유에 대해서는 Filed Symbol은 메모리를 "참조"하기 때문에 <FS_LIST>가 변경이 되면 자동으로 참조값으로 바뀌기 때문이다.
# FIELD SYMBOL( 필드심볼 ) 활용
# 여기서 활용하는 것은 "ASSIGN COMPOENT"이다.
# FIELD SYMBOL 활용을 하려면 앞에서 말했듯이 "동적" 일 때 자주 사용한다.
# 동적이라는 것은 패턴이 있다는 뜻이다.
예를 들어서 월에 따라서 달라지는 필드가 1월부터 12월까지 있다고 하자.
스트럭처 : LS_LIST
필드는
MON01
MON02
.
.
MON11
MON12
이런 식으로 MON은 항상 같고 뒤에 숫자만 달라지는 패턴. 이러한 패턴을 잘 찾아야 한다.
" 패턴 = MON(1~12) "
ASSIGN COMPOENT A OF STRUCTURE B TO C
# 위에 ASSIGN을 쉽게 풀면 C = B-A이다.
예를 들어 위에 상황을 가져와서 보면
C = LS_LIST-MON(1~12) 이렇게 정의가 되는 것이다.
FIELD SYMBOL이기 때문에 C에 값을 넣으면 바로 인터널테이블에 값이 들어간다.
A = 패턴 찾기, 넣기
B = 패턴을 가지고 있는 스트럭처( LOOP문과 연결된 스트럭처 )
C = B-A 값을 넣어줄 변수
예제를 통해서 다시 봐보자.
이번 예제는 WTG(001~016)에 해당하는 값들을 합치는 과정이다.
다음과 같은 COSP 테이블이 있다.
A, B, C를 찾아보자
A = 패턴 찾기
# WTG(001~016)
B = 패턴을 가지고 있는 스트럭처
# 스트럭처가 <FS_WTG>라고 하자.
# LOOP문을 선언하고 스트럭처를 어떻게 쓰느냐 달라진다.
C = B-A 값을 넣어줄 변수
# 이것 또한 어떤 식으로 선언하는 거에 따라서 달라진다.
이런 식으로 설정하면 된다.
혹여나 이해가 잘 가지 않는다면 실습을 해봐야 훨씬 이해가 잘 갈 것이다.
실질적인 예제를 하고 싶으면 밑에 링크 클릭.
2023.09.14 - [.SAP/..ABAP] - SAP Table 필드 구성 변경 방법( 세로->가로 )
다른 예제를 보고싶으면
2023.11.15 - [.SAP/....ABAP 예제] - ABAP 예제 #필드심볼 예제?
도움이 되셨으면 하단에 있는 광고 한번씩 눌러주세유!!
'.ABAP > ..모든 것' 카테고리의 다른 글
SAP 72자 오류 해결( The ABAP program lines are wider than the internal table ) (2) | 2023.10.05 |
---|---|
SAP SAPlink 설치, 사용 방법 (0) | 2023.09.26 |
SAP Table 필드 구성 변경 방법( 세로->가로 ) (9) | 2023.09.14 |
SAP Workbench Request OR Customizing Request 정리 (0) | 2023.09.08 |
SAP Select-Options 정리 (0) | 2023.09.03 |