📘 데이터 딕셔너리(Data Dictionary)


✅ 데이터 딕셔너리란?

데이터 딕셔너리는 SAP 시스템에서 사용되는 데이터베이스와 테이블을 조회, 이해, 확장할 수 있는 핵심 도구

SAP에서 제공하는 표준 테이블을 조회할 수 있고, 새로운 사용자 정의 테이블을 직접 만들 수도 있음

뿐만 아니라, SAP에서 제공하는 기존 테이블에 새로운 필드를 추가해서 확장할 수도 있음

 

- 실습환경과 다를 때 / Tcode 찾는 방법

/n => 현재화면 종료하고 새로운 티코드 실행
/o => 새로운 세션에서 해당 티코드 실행
/nex => 모든 활성 창 종료 후 LOG OFF

 

💡 se11이 없는데, 찾아야할 때 => `/nse11`


💻 SAP GUI에서 데이터 딕셔너리 열기


SAP GUI를 열고, 메뉴에서 Tools → ABAP Workbench로 이동

거기서 Development → SE11 (ABAP Dictionary) 를 찾아 더블클릭하면 ABAP Dictionary 메인 화면이 열림

 


📌 ABAP Dictionary 첫 화면 구성

첫 번째 항목: Database Tables (데이터베이스 테이블)

→ 기존 테이블 이름을 입력하고 “Display” 버튼을 누르면 테이블의 기술적 구성요소 확인 가능

Views

→ 실제 데이터를 가지진 않지만 테이블처럼 생긴 구조

Data Types

→ 테이블을 구성하는 데이터의 형태 (필드 타입 등)

Type Groups, Domains, Search Help, Lock Objects 등도 있음

 


🧱 실습: 투명 테이블(Transparent Table) 생성

Database Table 항목을 선택하고,

“ZEMPLOYEES” 처럼 이름을 입력한 후 Create 클릭

 

❗ 테이블 명명 규칙
Custom 테이블은 Z 또는 Y로 시작해야 함
SAP에서는 일반적으로 Z로 시작하는 이름을 사용함
- Z : 정규업무의 경우 (개발자, 설계자 생성)
- Y : 임시로 만든 것

 

 


🖋 테이블 설명 작성 및 속성 설정

1. Short Text 필드

테이블에 대한 설명을 작성

예: Employees

2. 하단 탭에서 Delivery and Maintenance 탭이 기본 선택됨

3. Delivery Class 드롭다운 선택:

여러 가지 클래스 중 “Application Table” 선택

→ 마스터 데이터나 트랜잭션 데이터를 저장할 테이블에 적합

4. Data Browser/Table View Maintenance 드롭다운:

“Display/Maintenance Allowed” 선택

→ 나중에 이 테이블에 직접 데이터를 입력할 수 있도록 허용함

 


💾 테이블 저장 (Save)

상단의 Save 아이콘 클릭

팝업창: “Create Object Directory Entry” 라는 창이 뜸

 


🧳 이게 뭐냐면?

보통 SAP 개발은 개발 시스템 → 테스트 시스템 → 운영 시스템으로 전송(Transport) 돼야 함

이 팝업은 개발 객체(오브젝트)를 어느 패키지(개발 클래스)에 넣을지 정하는 창

 

이번 실습에서는?

전송할 필요 없음 → Local Object 버튼 클릭

그러면 개발 클래스에 $TMP 이라는 임시 저장소로 저장됨

→ 이 오브젝트는 현재 개발 시스템 안에만 존재

하단 상태 표시줄에 “테이블이 저장되었습니다” 라는 메시지가 뜸

 


🧭 확인: 메뉴 > Go To > Object Directory Entry

위 메뉴에서 Go To → Object Directory Entry 선택 시

이전과 비슷한 팝업이 다시 뜸

여기서도 개발 클래스가 $TMP로 설정된 것을 확인 가능

 


✅ 요약 흐름 정리

1. SAP GUI 실행

2. SE11 또는 메뉴로 ABAP Dictionary 열기

3. 테이블 이름에 ZEMPLOYEES 입력하고 Create

4. Short Text 작성: “Employees”

5. Delivery Class: Application Table

6. Maintenance: Display/Maintenance Allowed

7. Save 클릭 → Local Object 선택

8. 테이블이 $TMP 개발 클래스로 저장됨

 


🔍 SE11은 뭘까?

SE11 = ABAP Dictionary 트랜잭션 코드

SAP에서 사용하는 모든 데이터 오브젝트(테이블, 뷰, 데이터 타입 등)생성, 수정, 조회, 테스트할 수 있는 중앙 통합 개발 도구

 

✅ SE11을 사용하는 이유

 

1. 테이블을 직접 만들고 확인할 수 있는 툴이기 때문

개발자가 직접 사용자 정의 테이블(Z테이블) 을 만들 수 있음

필드 추가, 기술 설정, 기본 키 설정, 검색 도움말 연결 등

2. SAP 표준 테이블도 검색하고 분석 가능

예를 들어 MARA (자재 기본정보 테이블), VBAK (판매 문서 헤더) 등

→ SAP 내부 테이블도 SE11에서 열어볼 수 있음

SAP가 제공하는 테이블의 구조나 데이터 타입이 어떻게 설계되었는지 분석 가능

3. 데이터 직접 테스트 가능

테이블을 만든 뒤, [Utilities → Table Contents → Display] 메뉴에서

데이터를 직접 조회하거나 입력해볼 수 있어 (조회만 가능한 경우도 있음)

개발 후 결과 확인이나 간단한 테스트용으로 유용함

 

4. ABAP 프로그램 개발

대부분의 ABAP 프로그램은 DB에 데이터를 읽거나 저장하는 로직이 포함됨

=>  테이블이 먼저 준비되어야 함

→ 그래서 프로그램 작성 전에 SE11로 테이블부터 만드는 것

 

5. 통합

SE11에서 만든 테이블은:

SE38 (코드 작성)

SE80 (오브젝트 관리)

SE37 (Function Module)

SE51 (화면 개발)

등 모든 SAP 개발 도구에서 바로 사용 가능함

 

💡 투명 테이블(Transparent Table)이란? : ABAP에서 정의한 테이블 구조가 데이터베이스에 그대로보인다(투명하다뜻)

ABAP에서 정의한 그대로 DB에 1:1로 저장되는 테이블!

SAP에서 사용하는 데이터베이스 테이블의 한 종류 / 가장 일반적이고, 대부분의 개발자가 사용하는 표준 테이블 형태.

ABAP Dictionary에 테이블을 정의하면 실제 DB에서도 동일한 이름, 동일한 필드 구조로 생성됨 => ABAP ↔ DB 간 구조 일치 = 투명

SE11에서 테이블 ZEMPLOYEES를 정의하면:
→ 실제 Oracle, HANA 등 DB에서도 ZEMPLOYEES라는 테이블이 생기고,
→ 필드도 동일하게 존재함


✅ ABAP에서 테이블을 만든다고 해서 곧바로 DB에 저장될까? ✔️ NO!

ABAP Dictionary(SE11) 에서 테이블을 생성하고 구조를 정의하는 순간에는 SAP 내부의 메타데이터만 구성됨.

이 상태에선 실제 데이터베이스(DB) 에는 변화가 안 생기며, Activate를 눌러야 실제 DB에 테이블 생성 DDL이 구현됨 

SAP이 자동으로 DB 유형에 맞는 SQL문을 생성 후 실행 예: HANA, Oracle, MSSQL 등

Open SQL만 써도 DB 독립적으로 개발할 수 있음

+ Recent posts