300x250
728x90

# 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 정리

 

SAP Field Symbol Type 정리

FIELD-SYMBOLS이란 : 자신의 메모리 공간을 갖지 않고 해당하는 변수에 Assign 해주고 동적인 접근을 가능하게 해주는 것. 여기서 중요한 건 FIELD-SYMBOLS에 타입을 선언했을 때 그냥 선언했을 때와 TYPE AN

potato98.tistory.com

 

 

# LOOP문에 쓰이는 INTO 대신... FIELD SYMBOL( 필드심볼 )..?


# FIELD SYMOBOL 쉽게 이해하기 위해서는 이것부터 알아야 한다. 

 

단순하게 생각해서 이렇게 생각해 보자.

LOOP문을 사용하면서 INTO Modify사용해왔지만,

필드심볼사용했을 때에는 Only ASSIGNING로 변경 됐다고 생각해 보자.

 

INTO, Modify => Assigning 

 

 

1. INTO = FIELD SYMBOL( 필드심볼 )


위에서 말했듯이 INTOAssigning으로 변경

 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 필드 구성 변경 방법( 세로->가로 )

 

SAP Table 필드 구성 변경 방법( 세로->가로 )

# 프로그램을 개발하면서 한 번쯤은 경험하지 않을까?라는 생각과 또한 현업이나 컨설턴트나 누군가 자신에게 "피벗테이블처럼 Table 데이터를 가로에서 세로로 변경해서 가독성 있게 만들어주

potato98.tistory.com

 

 

다른 예제를 보고싶으면 

2023.11.15 - [.SAP/....ABAP 예제] - ABAP 예제 #필드심볼 예제?

 

ABAP 예제 #필드심볼 예제?

 

potato98.tistory.com

 

 

도움이 되셨으면 하단에 있는 광고 한번씩 눌러주세유!!

 

728x90