본문 바로가기

어쩌다 SAP/어쩌다 ABAP

12일차) Structure, View, Table Type, DOMAIN, Data element

3. Structure

1. Structure란 무엇인가?

- 테이블처럼 필드로 구성되어 있으나, 데이터는 저장할 수 없고 구조만 가지고 있다.

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

- TABLES 구문으로 구조체를 개별 프로그램의 Work Area로 사용할 수 있다.

 

2. Structure 생성

- T-code : se11

- data type : Z + 모듈 구분명 + 오브젝트 구분자 + 순번

- Structure 선택

- Component 입력

 

4. View

1. View란 무엇인가?

- 테이블에 분산된 데이터들을 한 번에 조회할 때 View를 사용한다.

- 프로그램에서 테이블처럼 SELECT 구문에 사용할 수 있다.

- 만약 DB View가 두 개 이상의 테이블로 구성되어 있으면 View를 통해서는 읽기만 할 수 있다.

 

2. View의 종류

- Maintenance View만 책에서 다룰 것

- Maintenance View란 여러 개의 테이블을 동시에 유지보수할 수 있는 View를 의미한다.

- 이때 테이블은 반드시 외래 키로 연결되어 있어야 한다.

- 즉, 외래키로 연결된 테이블들의 원하는 필드를 하나로 모아 maintenance View로 생성하고, View에서 데이터를 입력, 삭제, 변경하면 실제 테이블의 데이터도 수정된다.

- ABAP 프로그램 안의 SELECT 문 같은 곳에서는 사용할 수 없다.

<Database View 만드는 법> 391p
- SE11
- View 필드에 Z나 Y로 시작하는 View 이름 입력 후 생성(Z + 모듈 구분명 + 오브젝트 구분자 + 순번)
- Database View 선택하고 엔터

Q) 유지보수 상태로 들어가면 '하나 이상의 테이블을 가진 DB뷰만 읽을 수 있습니다.' 라고 나오는데 흠.
<Maintenance View 만드는 법> 394p
- SE11
- Z + 모듈 구분명 + 오브젝트 구분자 + 순번
- Maintenance View 선택하고 엔터
<테이블 유지 보수기 만드는 법> 397p
- 앞에서 생성한 Maintenance View를 수정 모드로 조회하고
- 메뉴 - utilities - table maintenance generator를 선택
- authorization group, function group를 입력 - maintenance type 'one step' 선택
- find scr.number(s) 클릭해서 설정
- 페이지 아이콘 버튼 눌러서 Maintenance View Dialog 생성
- Contents 아이콘 클릭하면 Maintenance Dialog에 연결되어 데이터를 유지 보수할 수 있다.

- View cluster는 IMG(Implementation Guide)에서 데이터를 유지보수할 때 주로 사용되는 방법이다.

 

5. Table Type

- Table Type은 인터널 테이블 속성을 정의하는 목적으로 사용된다.

- Talbe Type 생성 시 Line Type, Access Type, key를 정의해야 한다.

 

<테이블 타입의 특성>

- 인터널 테이블 라인의 데이터 타입  속성과 구조체를 정의하기 위한 Line Type.

- 인터널 테이블 데이터에 접근하고 관리하기 위한 옵션(Access Mode)

- 인터널 테이블의 Key(Key definition과 Key category)

DATA gt_itab TYPE T_TYPE.
<Table Type 생성>
- se11
- data type 필드에 table type 이름 입력 - 생성
- 테이블 타입 선택
- 이미 존재하는 타입 참조 시 'Line Type' 라디오 버튼 클릭
- Line Type 선택 시 이미 존재하는 Data Element, Structures, table, Table Types, View 선택 가능

- RANGE Table Type은 프로그램에서 RANGE 변수로 사용된다.

- RANGE 변수는 SELECT 구문에서 IN명령어를 사용할 수 있다.

- RANGE Table 타입은 SELECTION-OPTION처럼 SIGN, OPTION, LOW, HIGH 네 가지 고정된 필드를 가진다.

<RANGE Table Type 생성>
- se11
- data type - 테이블 명 입력 - 생성
- table type 선택
- 메뉴 - edit - define as ranges table type 선택
- data element에 해당 element 입력하고 - create.

- RANGE 변수는 개별 프로그램에서 RANGES 구문으로 변수를 선언하여 사용할 수 있다.

- Header Line이 존재하는 SELECT-OPTIONS와 같은 구조이다.

<Local RANGE 변수 선언>
RANGES : R_CARR FOR SFLIGHT-CARRID.
SELECT-OPTIONS : SO_CARR FOR SFLIGHT-CARRID.

 

6. DOMAIN

- 도메인은 필드의 기술적인 속성을 정의하고 Data Element에 할당되어 사용된다.

<도메인 생성>
1)
- se11
- domain 필드에 Z나 Y로 시작하는 도메인 이름 입력

2)
Data Element에서 바로 도메인 필드에 이름 입력 후 더블클릭으로 생성

- Data Type과 길이 지정
- Value Range 탭에서 Domain에서 사용 가능한 값 설정(Single value, Intervals, Value Table)

 

7. Data Element

- 데이터 엘리멘트는 테이블 필드의 모든 정보를 가진 ABAP Dictionary 오브젝트이다.

- 데이터 엘리멘트를 생성하면, 모든 테이블의 필드 속성으로 사용할 수 있고, TYPE 구문의 대상이 될 수 있다.

- 레이아웃에서 스크린의 화면 속성으로도 사용할 수 있다.

DATA L_CONNID TYPE S_CONN_ID
<Data Element 생성>
- se11
- Data type - 이름 입력
- data element 선택
- data type, field label 입력 

오....... 예제를 할 수가 없어 너무너무 어렵다...