CS Student’s SAP&Tech Journey✨

[SAP] ABAP 딕셔너리(Dictionary) (3) 글로벌 타입 - 스트럭쳐(Structure) 정의하기 본문

SAP/딕셔너리 Dictionary

[SAP] ABAP 딕셔너리(Dictionary) (3) 글로벌 타입 - 스트럭쳐(Structure) 정의하기

인포마틱 2025. 2. 14. 17:58

SAP 시스템에서 데이터를 효율적으로 관리하기 위해서는 일관된 데이터 타입 정의가 필수적입니다. ABAP Dictionary에서는 글로벌 타입을 정의하여 여러 프로그램에서 재사용할 수 있도록 하며, 데이터의 무결성을 유지할 수 있도록 합니다.

이 글에서는 ABAP Dictionary의 글로벌 타입 정의에 대해 다루며, 구조(Structure, Structure Type)을 설명하겠습니다.

 

 

 

ABAP 딕셔너리(Dictionary) 도메인, 데이터 엘리먼트 관련된 포스팅 보러가기 ⬇️

 

[ABAP] ABAP 딕셔너리(Dictionary) (2) 글로벌 타입 Domain, Data Element 정의하기

SAP 시스템에서 데이터를 효율적으로 관리하기 위해서는 일관된 데이터 타입 정의가 필수적입니다. ABAP Dictionary에서는 글로벌 타입을 정의하여 여러 프로그램에서 재사용할 수 있도록 하며, 데

informatik.tistory.com

 

 


 


📌 Structure 타입

구조(Structure)는 여러 개의 필드를 그룹화하여 하나의 데이터 타입으로 정의하는 개념입니다. 테이블의 행(Row)처럼 여러 개의 필드(Field)를 하나의 단위로 다룰 수 있습니다.

✅ 스트럭처의 특징

  • 데이터 엘리먼트 및 도메인을 참조하여 여러 개의 필드를 포함할 수 있음.
  • Include Structure를 활용하면 기존에 정의된 구조를 다른 구조에 포함할 수 있음.
  • 화면 인터페이스, ALV 출력, 테이블 필드 그룹핑 등에 활용됨.

 

 

1️⃣ Flat Structure (기본 형태)

Flat Structure는 단순한 필드들의 집합으로 이루어진 구조입니다.

Flat Structure

 

 

 📌 Flat Structure 예제 : 주소를 구성하는 스트럭처

주소를 구성하는 구조체 ZSEMPLOYEE_07를 다음과 같이 설계합니다.

STREET ZIPCODE CITY

 

 

✔️ Data Type - Create - Structure 선택

 

✔️ Short Description 작성 - Components 작성 - Active (Warning 무시)

 

 

 

2️⃣ Deep Structure 딥스트럭처 1) Nested Structure

Nested Structure는 구조체 안에 또 다른 구조체가 포함된 형태로, 내부에 다른 구조체나 내부 테이블을 포함할 수 있습니다. 

Nested Structure

 

 

📌 Nested Structure 예제 : 한 직원이 여러 개의 전화번호를 갖는 스트럭처

한 직원이 여러 개의 전화번호를 갖는 스트럭처를 다음과 같이 설계합니다.
   ➡️ ZSPERSON1_07 내부에 ZSADDRESS1_07(1️⃣번 Flat Structure 예제 사용)을 포함하는 구조

Nested Structure

 

이를 통해 ZSPERSON1_07의 ADDRESS 필드는 ZSADDRESS1_07의 필드들을 포함하게 됩니다. 만약 CITY 필드를 가져오려면 다음과 같이 참조해야 합니다. 즉, ADDRESS는 단순한 필드가 아니라 ZSADDRESS1_07 구조를 포함하는 필드이며, 이를 통해 서브 필드(CITYSTREET 등)에 접근할 수 있습니다.

ZSPERSON1_07-ADDRESS-CITY.

 

 

Data Type - Create - Structure 선택

 

✔️ Shrot Description 작성 - Componets 작성 - Active

ADDRESS 필드의 타입은 스트럭처 ZSADDRESS1_07 선택

 

 

 

2️⃣ Deep Structure 딥스트럭처 2) Include Structure

Include Structure는 다른 구조체를 포함하는 구조입니다. 마치 기존에 정의된 컴포넌트를 포함하듯이 동작합니다.

 

📌 Nested Structure 예제 : 한 직원이 여러 개의 전화번호를 갖는 스트럭처

한 직원이 여러 개의 전화번호를 갖는 스트럭처를 다음과 같이 설계합니다.
   ➡️ ZSPERSON2_07이 ZSADDRESS1_07 (1️⃣번 Flat Structure 예제 사용)을 포함하는 경우

이렇게 하면 ZSADDRESS1_07의 모든 필드가 ZSPERSON2_07의 필드처럼 포함됩니다. 이 방식은 Nested Structure와 다르게 별도의 필드명을 거치지 않고 직접 접근 가능한 점이 특징입니다.

ZSPERSON2_07-CITY.

 

✔️ Include Structure 추가
1. ZSPERSON2_07 구조에서 커서를 원하는 위치에 놓음
2. Edit → Include → Insert 선택
3. ZSADDRESS1_07을 추가 후 저장