I Agree Line Smiley

SAP/ABAP

FIeld-Symbol로 간편하게 코딩하기 / Loop ~ Field-Symbol

지코딩 2023. 3. 28. 16:53

안녕하세요, 이번 포스팅에서는 제가 제일 많이 쓰는 구문인데요

Field-Symbol을 활용하여 modify를 생략하고 테이블 데이터를 직접 변경하는 구문을 리뷰하겠습니다.

 

먼저, Field-Symbol이란 무엇일까요?                  

ABAP 프로그램 내에서 동적으로 변수에 접근하며, ASSGIN(할당)된 데이터 오브젝트의 메모리 공간을 공유합니다.

즉 ASSGIN된 순간 데이터 오브젝트와 필드심볼간의 차이가 없다는 말입니다.

이 말은 필드심볼을 수정하면 ASSIGN 한 오브젝트도 수정된다고 생각하시면 편할 거 같습니다.

 

Field-Symbol 사용법                                           

기본적으로 필드심볼은 선언 후 할당의 개념을 가지고 있습니다.

하지만 S/4 HANA로 업그레이드되면서 ABAP New-Syntax 가 생겼습니다.

New-Syntax를 사용하여 오브젝트 타입에 맞게 필드 심볼을 선언할 수 있습니다.

 

New-Syntax : Data 선언                                      

이 처럼 DATA 선언 New-Syntax를 활용하여 () 안에 필드심볼을 선언하여 따로 선언 구문을 생략하고 필드 심볼을 사용할 수 있습니다.

 

Field-Symbol 활용 / Modify 생략                        

위와 같이 ASSIGN 된 필드 심볼을 수정하면 필드심볼과 오브젝트는 메모리를 공유하기 때문에 오브젝트도 동시에 수정이 됩니다.

그렇기에 Modify 없이 Itab을 수정할 수 있죠.

CLASS 필드가 모두 수정됨

이 구문을 사용하면 Loop에 따로 structure를 사용하지 않아 메모리상의 이점을 가져갈 수도 있고 Modify 구문 또한 생략할 수 있기 때문에 자주 사용하게 될 것입니다.

 

이 설명으로 필드심볼을 완전히 이해하실수는 없지만 필드심볼을 사용하는 데는 문제가 없을 거 같다고 생각합니다.

 

또한 필드심볼은 역참조와 함께 이해하실 수 있지만 그 부분에 대해서는 다음번에 포스팅하도록 하겠습니다!

감사합니다!!