본문 바로가기

SAP셀프스터디/22일만에 이지아밥 1회독 하기

[chapter07] ABAP Dictionary

최초 작성일: 23년 1월 16일
최종 작성일: 

 

꼭 알아야 하는것

table

view

types(data element, structure, table type)

domain

 

abap dictionary는 data object가 아니다

별도로 abap dictionary라는 것을 두고 sap db utility를 통해 데이터 베이스와 통신하게 된다.

abap dictionary는 중앙집중식 관리와 같은 많은 장점을 가짐

 

Paragraph 01. 오버뷰

01- 1. abap dictionary 

아밥 프로그램에 사용되는 오브젝트들(table, view, structure, type..)을 아밥 딕셔너리라고 부른다.

이러한 오브젝트들의 정보들을 metadata 또는 data definition이라 정의하며,

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

ABAP Dictionary는 동적으로 abap workbench와 연결되어 있기 때문에 오브젝트를 변경하면 abap program과 screen에 바로 영향을 미친다. 또한 시스템에서 사용되는 모든 데이터 들을 중앙집중적으로 관리 하다.

ABAP Dictionary는 아래의 영역으로 분류된다.

  • database object : table, view
  • type definition: structure, data element, table type
  • tool: search help, lock object

01-2. ABAP Dictionary 종류

1) database object 

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

2) type definition

abap dictionary는 사용자 정의 type (data elements, structures, table types)을 지원한다.

개별 프로그램에서 사용되는 type은 TYPES구문으로 생성하지만, 모든 ABAP 프로그램에서 사용할 수 있는 Type object는 abap dictionary에서 정의 한다. 중앙 집중으로 관리 되기 때문에 type object를 변경하면 모든 프로그램에 영향을 미치게 되어 3개의 타입 카테고리만 존재함.

data element(elementary type과 reference type): 필드의 내역과 같은 변수의 값 같은 것. domain은 테이블 필드의 기술적 속성을 정의하는 오브젝트임( 필드는 변수 값 혹은 입력 값 이라면 도메인은 해당 변수의 형태나 입력할 수 있는 글자 수 등을 제한하는 조건이라고 생각하면 됨)

structure(structured type):structure는 type을 가지는 component로 구성 되어 있음

table type: 인터널 테이블의 기능적 속성을 정의 하는데 사용됨. 특별한 형태인 range table type이 존재함.

 

3)ABAP Tool

abap dictionary tool은 데이터를 관리하고 정의하는 기능 이외에 프로그램에 추가로 필요한 기능들을 통칭한다. 예를 들어 search help등이 있다

 

Paragraph 02. 테이블

 

테이블은 실제 데이터 베이스의 물리적인 테이블과 ABAP DICTIONARY의 테이블이 존재함

TECODE:SE11에서 테이블을 생성해서 활성화 하면 데이터베이스에 물리적인 테이블에 생성됨.

SAP은 개발자에게 DBMS에 직접 로그인해서 테이블 변경하고 데이터 삭제, 조회할 수 있는 권한을 주지 않음.

테이블은 2차원 MATRIX로 이루어져있음

행렬의 열은 각각 이름과 속성이 있으며 필드 혹은 칼럼이라고 부름.

테이블은 하나 혹은 그 이상의 키 필드를 가질 수 있으면 이 키 필드를 통해서 테이블에 있는 다른 레코드들과 중복되지 않고 구분가능함.

아밥 테이블은 크게 3가지 종류가 있으나 Transparent table만 공부하자.

테이블의 4가지 속성

    • table field : 필드의 이름과 속성을 가지고 있고 key 필드를 가지고 있다( 열 제목과 같은 거임)
    • foreign key: 하나의 테이블과 다른 테이블의 관계를 정의 한다
    • technical setting: 테이블 데이터 총 건수, 버퍼링 설정과 같은 테이블 속성을 설정함.
    • index: 데이터 slelect 속도를 증가 시켜준다. 테이블에 데이터 추가될때마다 인덱스가 추가되므로 쓰기 속도는 감소 하고 읽기 속도는 증가함.

02-1. table field

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

 

  • field : 필드 이름으로 최대 16자리 문자를 가질 수 있으며, 시작은 문자로 해야하고 언더라인 기호를 허용함.
  • key flag: 테이블 key를 정의하는 특성이 있음
  • initial: 필드의 기본값을 설정 한다.
  • field type: 문자 타입, 숫자 타입과 같은 필트의 데이터 타입을 지정함.
  • field length: 필트가 허용할 수 있는 테이블 길이를 지정함.
  • demical places: 소수점 이하 자리르 ㄹ지정
  • short description: 해당 필드의 의미 기술

 

se11 -> mara 테이블 조회 ->utilities -> database object -> display -> 개별 필드의 initial value 확인 가능

initial value가 약간 초기값이라고 보면 되나?

초기값을 000으로 주는 이유가 뭘까..

02-1-01. field 속성 정의 (data type, field length, short text)

  • 테이블 필드에는 타입, 길이, 내역을 설정해야함.
  • 필드 속성은 data element와 predefined type 두가지 방식으로 설지정 가능
  • data element는 사용자가 직정 생성 할 수 있는 오브젝트이며, 이미 존재하는 data element를 입력하면 타입, 길이 등이 자동으로 지정된다.

02-1-02. reference field와 reference table

수량을 표현하는 필드에 값과 함께 단위 정보를 추가 요망

WRITE 원천 비용 TO 변환 비용 UNIT'KG'

.

 

easy abap 공부중 342 페이지에서 테이블 데이터 조회방법을 모르겠다..

 

Paragraph 03. Structure

 

1. structure란 무엇인가?

구조체는 테이블과 같이 필드로 구성되어 있지만,

데이터는 저장할 수 없으며 구조만 가지고 있다.

실제 데이터 베이스에는 생성되지 않고 abap dictionary에만 존재하는 타입이다.

테이블을 사용 하듯이 tables 구문으로 선언하여 구조체를 개별 프로그램의 work area로 사용할 수 있다.

structure 생성 예시
nested structure 예시

Paragraph 04. view

 

1.view란 무엇인가?

관계형 데이터베이스에서는 여러개의 테이블이 존재하고 그 테이블들에 데이터 들이 분산된 경우가 많다.

이러한 데이터를 한번에 조회하고자 할 경우에 view를 사용하게 된다.

 

view의 구조(출처:이지아밥2.0)

2. view 생성

2-1 catabase view 생성

T-CODE: SE11

'SAP셀프스터디 > 22일만에 이지아밥 1회독 하기' 카테고리의 다른 글

[chapter15] GRIID ALV(ABAP List View)  (0) 2023.01.27
[chapter14] ABAP Object  (0) 2023.01.27
[chapter05] Internal Table  (0) 2023.01.23
[chapter02] Data Type  (0) 2023.01.23
[chapter01] Package & CTS  (0) 2023.01.16