본문 바로가기

ABAP 프로그래밍 개념/ABAP Structue and Internal Table

5.1.4 Working with Structures

앞서서 로컬 및 글로벌 Structure를 정의하는 방법을 알았으니 ABAP 프로그램에서 이들을 사용하는 방법을 살펴보겠습니다.

프로그램에서 Structure Data Object를 정의하는 방법은 네 가지가 있습니다.

1) 프로그램 내에서 TYPES 키워드를 사용하여 정의된 Local Structure Type을 참조하여 정의
2) Global Structure Type를 언급(SE11에서 정의된)
3) ABAP Data Dictionary의 Table을 언급
4) Data 키워드를 사용하여 BEGIN OF ~ END OF 문법을 사용하여 다이렉트로 Data Object를 선언

Structure는 자신의 구성요소(Component)에 접근하는 방법을 제외하고는 단일 필드와 유사하게 동작합니다. Structure의 필드에 접근하려면  "Structure-필드" 처럼 Structure의 해당 구성요소를 지정해야 합니다. Structure는 한 번에 하나의 행(row)만 저장할 수 있다는 것에 유의해야 합니다. 새 레코드를 저장하면 기존 레코드가 대체됩니다.

TYPES : BEGIN OF ty_sflight,
         CARRID TYPE S_CARR_ID,
         CONNID TYPE S_CONN_ID,
         FLDATE TYPE S_DATE,
        END OF ty_sflight.
        
TYPES : BEGIN OF ty_trip,
         name TYPE name1,
         flight type ty_sflight,
        END OF ty_trip.
        
DATA : s_sflight TYPE ty_sflight,
       s_trip TYPE ty_trip.
       
*Structure Type의 한 구성요소를 참조하기
DATA v_connid TYPE ty_sflight-connid.

*Structure Data Object의 필드에 접근하기
s_sflight-carrid = 'AA'.
s_sflight-connid = '04'.

WRITE st_sflight-connid.

*nested structure의 필드에 접근하기
st_trip-flight-carrid = 'AB'.

리스팅 5.5의 예제 코드는 flat Structure인 TY_SFLIGHT와 Nested Structure Type인 TY_TRIP을 정의하며 각각 이러한 Structure를 참조하는 데이터 오브젝트 S_SFLIGHT와 S_TRIP을 정의합니다. 코드의 주석 라인은 ABAP 문을 사용하여 Structure의 구성 요소에 액세스하는 방법을 설명합니다.

반응형

'ABAP 프로그래밍 개념 > ABAP Structue and Internal Table' 카테고리의 다른 글

5.2.5 Control Break Statements  (0) 2023.04.25
5.1.5 Use Cases  (0) 2023.04.19
5.1.3 Global Structures  (0) 2023.04.19
5.1.2 Local Structures  (0) 2023.04.19
5.1.1 When to Define Structures  (0) 2023.04.18