콘텐츠
SAP ABAP Dictionary
SAP 는 ABAP Dictionary 혹은 Data Dictionary 라 불리는 저장소가 있다. 이는 ABAP 개발자들이 자신이 사용할 테이블, 데이터 요소, 도메인 등을 정의해 불러와 사용하게 된다.
T-CODE: SE11
SE11 은 ABAP Dictionary 를 조회, 생성, 삭제 등 관리를 위해 제공 되는 T-CODE 이다.
관리 할 수 있는 Object(객체) 는 다음과 같다.
- Database table
- View
- Data type
- Type Group
- Domain
- Search help
- Lock object
오브젝트 생성
오브젝트의 생성은 간단하다. 먼저 생성할 오브젝트 종류를 선택하고 오브젝트명을 작성 한 다음 Create 버튼을 누르면 된다. 주로 접두사로 Z 를 붙여 개발자가 생성한 오브젝트와 SAP 기본 오브젝트를 구분 한다.
Database table
프로그래머가 가장 친숙한 용어일 table 은 그 역할이 기본적인 DB Table 과 역할이 같다. 데이터가 저장 될 구조를 정의하고 구조에 맞춰 저장, 검색, 수정 등을 할 수 있게 해준다.
상세한 내용은 SAP에서 DB 테이블 생성하기: SE80과 SE11을 이용한 간편한 방법 포스트에 작성 되어 있다.
View
View 는 여러가지 역할이 있지만, 주 용도는 테이블을 결합한 가상의 테이블이다. 예를 들어 A와 B의 테이블을 하나로 합친 가상의 C 테이블처럼 동작하는 오브젝트다.
SE11 에서 생성을 시도하면 다음과 Choose View Type 팝업 창이 출력 되는데 이에 대한 설명은 다음과 같다.
- 데이터베이스 뷰 (Database View): 두 개 이상의 테이블을 조인하여 생성되는 가상 테이블
- 프로젝션 뷰 (Projection View): 하나의 테이블에서 특정 필드만 선택하여 표시하는 가상 테이블
- 유지보수 뷰 (Maintenance View): 이름에도 알 수 있듯 테이블의 데이터를 조회 뿐 아니라 데이터의 유지보수(추가, 수정, 삭제 등) 를 하기 위해 사용되는 가상 테이블
- 도움말 뷰 (Help View): 사용자에게 검색 도움말(Search Help) 를 제공하기 위해 사용되는 뷰
Data Types
데이터 타입을 미리 정의 해 두는 오브젝트다. 예를 들어 미리 사원번호 (숫자 10자리) 타입, Internal Table 등에 사용 될 구조 등의 설정이 가능하다.
- Data element: 데이터 속성 오브젝트로 데이터 타입(C, N 등), 길이 등을 정의 한다. 이 데이터에 입력 할 수 있는 값에 대한 입력 도움말 (Search Help) 도 지정 할 수 있다.
- Structure: 구조체를 사전 정의할 때 사용한다.
- Table type: 테이블 형태의 데이터 타입을 정의해 이 Type 을 사용한 ABAP 변수는 Internal Table 이 된다.
Data Element 등 Data Types 에는 직접 CHAR, NUMC 와 같은 Data Type 을 직접 입력하기도 하지만, Domain 을 지정 하여 정의하는 것이 일반 적이다. (Domain 은 아래에서 다루고 있다.)
Type Group
관련 된 데이터 타입, 상수, 구조체를 하나의 그룹화 하여 관리할 때 사용한다. ABAP 프로그래밍 시 TYPE-POOL 로 사용하던 오브젝트가 이와 관련 된다.
대표적인 Type Group 으론 SAP 아이콘 관련 정보가 담긴 ICON 이 있다.
오브젝트의 내용은 Short text 를 입력 한 후, ABAP 코드로 작성된다.
Domain
도메인 (Domain) 은 Data Element 의 내용 중 Data Type, Length 뿐 아니라 입력 가능한 값을 지정 (예: 이 데이터 타입엔 A, B 값만 입력 가능) 할 수 있다.
Search help
서치 헬프는 필드에 입력 된 값을 가이드 해주기 위해 설정된다. SE11 의 필드도 데이터를 입력할 때 우측에 조그마한 네모 버튼이 활성화 됨을 확인 가능 한데, 이 때 출력 되는 팝업창이 Search help 다.
Lock object
DB Table 에서 특정 행 아니면 아예 테이블 전체 등, 동시에 접근할 경우 데이터가 꼬일 가능성이 있어 이를 방지하기 위해 동시에 수정 하는 것을 방지하기 위해 설정하는 오브젝트다.
이 오브젝트는 DB Table 내 데이터의 무결성, 일관성, 정확성 등을 유지하는데 중요한 역할을 한다.
아래의 Object ‘/ASU/E_XML_MNT’ 는 ‘/ASU/HEADER’ Table 의 필드 수정 시 이를 컨트롤 하기 위해 설정 되었다.