CS Student’s SAP&Tech Journey✨
[SAP] ABAP 딕셔너리(Dictionary) (3) 글로벌 타입 - 스트럭쳐(Structure) 정의하기 본문
[SAP] ABAP 딕셔너리(Dictionary) (3) 글로벌 타입 - 스트럭쳐(Structure) 정의하기
인포마틱 2025. 2. 14. 17:58SAP 시스템에서 데이터를 효율적으로 관리하기 위해서는 일관된 데이터 타입 정의가 필수적입니다. 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 예제 : 주소를 구성하는 스트럭처
주소를 구성하는 구조체 ZSEMPLOYEE_07를 다음과 같이 설계합니다.
STREET | ZIPCODE | CITY |
✔️ Data Type - Create - Structure 선택
✔️ Short Description 작성 - Components 작성 - Active (Warning 무시)
2️⃣ Deep Structure 딥스트럭처 1) Nested Structure
Nested Structure는 구조체 안에 또 다른 구조체가 포함된 형태로, 내부에 다른 구조체나 내부 테이블을 포함할 수 있습니다.
📌 Nested Structure 예제 : 한 직원이 여러 개의 전화번호를 갖는 스트럭처
한 직원이 여러 개의 전화번호를 갖는 스트럭처를 다음과 같이 설계합니다.
➡️ ZSPERSON1_07 내부에 ZSADDRESS1_07(1️⃣번 Flat Structure 예제 사용)을 포함하는 구조
이를 통해 ZSPERSON1_07의 ADDRESS 필드는 ZSADDRESS1_07의 필드들을 포함하게 됩니다. 만약 CITY 필드를 가져오려면 다음과 같이 참조해야 합니다. 즉, ADDRESS는 단순한 필드가 아니라 ZSADDRESS1_07 구조를 포함하는 필드이며, 이를 통해 서브 필드(CITY, STREET 등)에 접근할 수 있습니다.
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을 추가 후 저장
'SAP > 딕셔너리 Dictionary' 카테고리의 다른 글
[SAP] ABAP 딕셔너리(Dictionary) (6) 테이블 성능 최적화 - 키 필드 / 인덱스 / 버퍼링 활용하기 (0) | 2025.02.14 |
---|---|
[SAP] ABAP 딕셔너리(Dictionary) (5) 객체 생성 - 데이터 베이스(DB) 테이블 생성하기 (0) | 2025.02.14 |
[SAP] ABAP 딕셔너리(Dictionary) (4) 글로벌 타입 - 테이블 타입(Table Type) 정의하기 (0) | 2025.02.14 |
[SAP] ABAP 딕셔너리(Dictionary) (2) 글로벌 타입 - 데이터 엘리먼트(Data Element), 도메인(Domain) 정의하기 (0) | 2025.02.14 |
[SAP] ABAP 딕셔너리(Dictionary) (1) 기본 개념 / 주요 기능 (0) | 2025.02.12 |