오늘은 ABAP Programing에서 중요한 부분을 차지하는 Dictionary 에 대해서 포스팅 해보도록 하겠다.

 

 

< ABAP Dictionary 화면 ( T-CODE 'SE11' ) >

 

화면에서와 같이 ABAP Dictionary에서 관리 할수 있는 항목이 7가지로 나누어져 있다.

이 7가지 항목을 기능적으로 3가지로 분류해 보면 다음과 같다. 

 

  • Database Object - Database Table, View
  • Type Definition - Data type, Type Group, Domain
  • ABAP Tools - Search Help, Lock Object 

  Database Object  

 데이터 베이스에서 말하는 Table과 View 대한 기본 개념은 다음과 같다. 

  Table   물리적으로 존재하며 데이터가 실제로 저장되는 공간
  View   물리적인 Table의 조합으로 만들어진 가상의 테이블
  데이터를 저장하지 않고 논리적으로만 존재

< 생성 가능한 View Type 종류 >

ABAP Dictionary에서는 화면과 같이 4가지의 View Type이 존재한다.

 

Database View와 Projection View는 위에 언급한 테이터베이스 View의 개념과 동일하며

Projection View 경우엔 단일 테이블로만 가능하다.

ABAP 프로그래밍시 SQL의 간소화 및 재사용성을 목적으로 사용한다. 

 

Maintenance View와 Help View는 ABAP Dictionary에서만 존재하는 View이다.

 

Maintenance View : 마스터 데이터를 쉽게 유지보수(입력/수정/삭제) 할 수 있도록 만든 하나의 프로그램으로 SQL에서

Table Select 용도로는 사용할 수 없다.  IMG( Configuration ) 화면 대부분이  Maintenance View 로 구현되어 있다. Help View는 ABAP Dictionary에 Search Help 구현시에 사용되는 View이다.

 

( * 여러 Maintenance View를 1-tier 구조로 모아놓거나 2-tier이상의 Hierarchy 구조로 만드는 Cluster View도 존재한다. )

( * HANA DB로 업그레이드 되면서 CDS View가 추가되었다. )

 


  Type Definition  

Data Type 

Data Type은 화면과 같이 3가지 Type으로 생성할 수 있다. 

 

  • Data Element : 하나의 필드를 정의
  • Structure : 필드의 집합인 구조체로 라인 하나의 형태.  
  • Table Type :  동일 Structure 의 형태로 여러 라인을 담을 수 있는 형태

ABAP Dictionary에서 선언된 Data Type은 프로그래밍시 선언되는 Data Object 뿐만 아니라 Global 하게 

ABAP에서 생성되는 다양한 Object 에 참조되어 사용된다. 

 

Type Group은 동일한 성격의 Type을 모아 놓은 그룹이라 할 수 있다.

프로그래밍시 해당 Type Group을 선언하게 되면 그 안에 정의된  모든 타입을 사용할 수 있다. 

실무에서 자주 사용되는 대표적인 Type Group은 'SLIS' 로 Function ALV 구현시 필요한 Type 들이 정의되어 있다.

Type Group에 정의된 Type들의 Naming은 기본적으로 앞에 Type Group 명이 붙는다. 

 

Domain은 Data Type의 Element에 기술적 속성을 부여하는 Object이다. 

여기서의 기술적 속성은 데이터의 Type, 길이 뿐만이 아니라 Conversion Routine, 입력값의 범위, 고정입력값 등의 속성을 부여하는 것을 말한다. 


  ABAP Tool  

Search Help : 입력 필드의 값을 입력하기 위해 입력 값을 검색하고 리스트도 보여주는 Help 팝업창을 말하며

Table과 View를 기반으로 원하는 필드만 구성하여 팝업창을 구현할 수 있다.

( * Search Help를 구현 할 수 있는 방법은 Search Help Object 외에도 다양한 방법으로 구현 가능하다 )

 

Lock Object : Table의 Lock을 제어하는 Object 로 Table에 저장되는 데이터가 동기화 될 수 있도록 한다.

즉 사용자가 해당 테이블의 데이터를 수정하게 되면 Lock Object에 의해 해당 테이블에 Lock이 걸리고

다른 사용자의 수정 접근을 막아 데이터가 동기화 되어질 수 있게 한다.

Lock Object는 Function의 형태로 Enqueue / Dequeue  쌍으로 생성이 되며 프로그램 구현시 해당 펑션으로

Lock을 제어한다. 

+ Recent posts