본문 바로가기

Easy Abap 2.0

[1주차] Chapter 7 ABAP Dictionary Part 1

 

<ABAP Dictionary의 정의와 특징>

 

ABAP 프로그램에 사용되는 오브젝트들(Table, View, Structure, Types, Search Help, Lock object)
ABAP Dictionary
라고 한다.

 

이러한 오브젝트들의 정보를 Data Defintion(또는 Metadata)이라 정의하면,

데이터 구조를 정의하고 관리하는 역할을 ABAP Dictionary가 하게 된다.

 

ABAP Dictionary는 시스템에 사용되는 오브젝트들을 중앙집중식으로 관리하고

신규 또는 변경된 Metadata의 정보는 모든 시스템 오브젝트에게 알려진다.

 

ABAP Dictionary는 동적으로 ABAP Workbench와 연결되어 있기 때문에 오브젝트를 변경하면

ABAP ProgramScreen에 바로 영향을 미친다.

 

이것은 Data Ingegrity(데이터 무결성), Data Consistency(데이터 일관성), Data Security(데이터 안정성)

보장하게 한다.

 

 

<ABAP Dictionary 종류>

 

 

1) Database Object

   

  •   Table :시스템에서 생성된 데이터를 저장하는 실체 물리적인 공간으로 데이터베이스의 바탕을 이룸
  •   View : 하나 이상의 Table이 논리적으로 결합한 구조로서, 실제 데이터를 가지는 것이 아니라             
                  Table의 데이터를 조합하여 조건에 맞게 조회하는 기능을 주로 담당

 

2) Type Definition

 

   사용자 정의 Type(Data Elements, Structures, Table Types)을 지원
   

  • Data Element( Elementary Type과 Reference Type)  :  필드의 내역과 같은 어의적(단어의 말이나 뜻) 정보를 가짐
                                                                                           (필드의 description이라고 생각하면 됨
    - Domain: 테이블 필드의 기술적 속성을 정의하는 오브젝트.

  • Structure( Structured Type) : Type을 가지는 Component로 구성되어 있음.
  • Table Type : Internal Table의 기능적 속성을 정의하는 데 사용됨

 

3) Tool

 

데이터를 관리하고 정의하는 기능 이외에 프로그램에서 추가로 필요한 기능들을 통칭함.

예를 들어, Search HelpLock Object

 

 

 

 

<ABAP 테이블>

 

1. Table Field

 

테이블 필드는 테이블 속성을 표현하는 개별 구성요소이다.

 

 

테이블 구성요소 설명
필드( Field Name) 최대 16자리 문자를 가질 수 있음. 
시작은 문자로 해야하며, 언더라인(_)기호를 허용함.
키( Key Flag) 테이블 Key를 정의하는 특성
Initial Values 필드의 기본값을 설정(= default)
Data Element 필드의 내역과 같은 어의적 정보를 가짐 
T-code: se11에서 create 가능
(사용자가 직접 생성할 수 있는 오브젝트)
데이터 유형( Field Type) 문자타입, 숫자타입과 같은 필드의 데이터 타입 지정
길이( Field Length) 필드가 허용할 수 있는 테이블 길이 지정
소수자리수 소수점 이하 자리 지정
간단한 설명(Short Description) 필드의 의미를 기술하는 내역

 

 

[ABAP Dictionary 버튼의 기능]

 

버튼 기능
Error가 존재하는 지 Check
Activate(활성화) - 가장 중요한 기능 중 하나


오브젝트가 사용된 리스트 검색
내용 조회

 

1.1 Reference Field와 Reference Table

 

'수량'을 표현하는 데이터 타입 QUAN (UNIT 참조)  

'화폐량'을 표현하는 데이터 타입 CURR(CUKY 참조)은 
단위를 정의하는 참조 필드를  꼭 지정하여야 한다.

참조 필드를 지정하지 않으면 단위 등에 따라서 그 값이 전혀 다른 데이터가 될 수 있다.

 

예시)

 

SFLIGHT 테이블의 필드 PRICE 더블 클릭

 

통화 단위 필드인 SFLIGHT의 CURRENCY 필드가 참조 필드로 설정됨
테이블 데이터 조회 시 CURRENCY 필드에 달러 USD와 유로화 EUR이 저장되어 있고 이 값에 따라 PRICE 필드가 통화 단위에 적절하게 변환되어 표현됨

 

 

2. Table 생성

 

T-code:SE11에 들어가서 Create 버튼을 눌러 생성

생성 시 테이블 Naming을 Naming Rule에 맞게 생성 필요하며 '_'기호 포함 16자리까지 가능.

 

[보통 Naming Rule]

 

CBO 구분자 Z 또는 Y + 모듈 구분명+ 오브젝트 구분자(T: Table) + 순번

 

예시) Z HR T 001

 

[테이블 생성 순서]

 

표준테이블 유지보수 허용 시
T-code: SE16 테이블 브라우저 권한이 있는 사용자라면 테이블 엔트리를 생성/변경 할 수 있고
T-code: SM30 테이더 유지보수(Table Maintenance View를 통하여 데이터 관리)도 가능함.

 

Data Element 해당 이름 더블클릭해서 생성

 

 

Data Element 생성 시

Step 1:  정의

간단한 설명 및 Elementary Type 지정

 

Step 2: 필드라벨

 

필드라벨 지정

 

필드라벨 지정 후 활성화 버튼 눌러서 활성화한다.

 

 

Step 3: 나머지 테이블 및 Data element 아래 그림대로 새로 만든 후 마지막에 활성화

 

 

활성화하면 Technical Settings(기술적 세팅) 설정하라고 하니 설정해야함

 

 

Data Clsss 및 Size Category 위 그림처럼 지정

해당 위 그림처럼 지정 후 저장

 

위 처럼 테이블 생성했으면 나머지 사원 자격증 저장하는 테이블 및 자격증 ID와 이름 저장하는 테이블도 각각 만들어야함.