SAP 데이터베이스 구성요소

Ada·2024년 10월 24일

SAP ABAP

목록 보기
19/21

1. 데이터 요소 (Data Element)

데이터 요소는 필드의 속성과 의미를 정의하는 객체임.
테이블이나 구조체의 필드가 어떤 데이터 타입을 가지고 있으며, 입력 가능한 최대 길이 등을 지정함. 데이터 요소는 도메인을 참조하여 데이터 타입과 유효성 검사를 관리함.

주요 속성:

  • 도메인 (Domain): 필드의 데이터 타입, 길이, 소수점 자릿수 등을 정의하는 객체임.

  • 데이터 타입 (Data Type): 필드에 저장될 데이터의 유형을 정의함 (예: CHAR, NUMC, DEC 등).

  • 길이 (Length): 필드에 저장될 데이터의 최대 길이를 정의함.

  • 텍스트 (Text): 필드에 대한 설명 라벨을 정의함. 짧은, 중간, 긴 설명을 제공하여 화면이나 출력 양식에서 사용됨.

사용 함수 : DDIF_DTEL_PUT

DATA: ls_dd04v TYPE dd04v.  " 데이터 요소 구조체

" 데이터 요소 속성 정의
ls_dd04v-rollname = 'ZMY_DATA_ELEMENT'.  " 데이터 요소 이름
ls_dd04v-domname  = 'ZMY_DOMAIN'.        " 참조할 도메인
ls_dd04v-ddtext   = '샘플 데이터 요소'.   " 데이터 요소 설명

" 데이터 요소 생성
CALL FUNCTION 'DDIF_DTEL_PUT'
  EXPORTING
    name     = ls_dd04v-rollname    " 데이터 요소 이름
    dd04v_wa = ls_dd04v             " 데이터 요소 정의
  EXCEPTIONS
    others   = 1.                   " 예외 처리

2. 도메인 (Domain)

도메인은 필드의 기본 속성을 정의하는 객체임.
필드의 데이터 타입, 길이, 소수점 자릿수 등을 정의하고, 값의 유효성을 검사할 수 있는 범위를 지정함.

주요 속성:

  • 데이터 타입 (Data Type): 필드에 저장될 데이터 유형을 정의함.

  • 길이 (Length): 필드의 최대 길이를 지정함.

  • 소수점 (Decimals): 숫자 타입 필드에 소수점 자릿수를 지정함.

  • 유효성 검사 (Value Range): 필드에 입력할 수 있는 값의 범위를 제한함.

사용 함수 : DDIF_DOMA_PUT

DATA: ls_dd01v TYPE dd01v.  " 도메인 구조체

" 도메인 속성 정의
ls_dd01v-domname  = 'ZMY_DOMAIN'.     " 도메인 이름
ls_dd01v-datatype = 'CHAR'.           " 데이터 타입
ls_dd01v-leng     = 10.               " 길이
ls_dd01v-ddtext   = '샘플 도메인'.     " 도메인 설명

" 도메인 생성
CALL FUNCTION 'DDIF_DOMA_PUT'
  EXPORTING
    dd01v_wa = ls_dd01v             " 도메인 정의
  EXCEPTIONS
    others   = 1.                   " 예외 처리

3. 테이블 (Table)

테이블은 데이터를 행(Row)열(Column)로 저장하는 객체임.
SAP 시스템에서 데이터를 물리적으로 저장하는 기본 단위임.
테이블에는 기본 키, 외래 키 등이 설정되어 데이터의 무결성을 유지함.

주요 속성:

  • Primary Key (기본 키): 테이블의 각 행을 고유하게 식별하는 필드 또는 필드의 조합임.

  • Foreign Key (외래 키): 다른 테이블과의 관계를 정의하는 필드임.

  • Client-Specific (클라이언트 의존성): 테이블이 클라이언트 별로 관리되는지 여부를 나타냄.

  • Data Class: 테이블 데이터가 저장될 위치를 지정함.

  • Size Category: 테이블의 예상 레코드 수를 지정하여 시스템이 테이블 공간을 할당함.

사용 함수 : DDIF_TABL_PUT

DATA: ls_dd02v TYPE dd02v,    " 테이블 기본 속성 구조체
      lt_dd03p TYPE TABLE OF dd03p, " 테이블 필드 구조체 테이블
      ls_dd03p TYPE dd03p.    " 테이블 필드 구조체

" 테이블 속성 정의
ls_dd02v-tabname  = 'ZMY_TABLE'.    " 테이블 이름
ls_dd02v-tabclass = 'TRANSP'.       " 테이블 유형 (투명 테이블)
ls_dd02v-ddtext   = '샘플 테이블'.   " 테이블 설명

" 테이블 필드 정의
ls_dd03p-fieldname = 'FIELD1'.      " 필드 이름
ls_dd03p-rollname  = 'ZMY_DATA_ELEMENT'.  " 데이터 요소 이름
APPEND ls_dd03p TO lt_dd03p.

" 테이블 생성
CALL FUNCTION 'DDIF_TABL_PUT'
  EXPORTING
    dd02v_wa  = ls_dd02v             " 테이블 정의
  TABLES
    dd03p_tab = lt_dd03p             " 테이블 필드 정의
  EXCEPTIONS
    others    = 1.                   " 예외 처리

4. 뷰 (View)

뷰는 여러 테이블에서 데이터를 조회할 수 있도록 해주는 가상의 테이블임.
실제 데이터를 저장하지 않으며, 필요한 데이터를 여러 테이블에서 조인하여 보여줌. 데이터 조회를 위해 사용됨.

주요 유형:

  • Database View (데이터베이스 뷰): SQL을 사용해 데이터를 조회할 수 있는 기본적인 뷰임.

  • Projection View (프로젝션 뷰): 특정 테이블의 일부 필드만 표시하는 뷰임.

  • Help View (도움말 뷰): 검색 도움말(F4)에 사용되는 뷰임.

  • Maintenance View (유지 보수 뷰): 여러 테이블의 데이터를 입력하거나 수정할 때 사용되는 뷰임.

주요 속성:

  • 조인 조건 (Join Conditions): 여러 테이블 간 데이터를 결합하는 조건을 정의함.

  • 프로젝션 (Projection): 특정 필드만 선택하여 표시할 때 사용됨.

  • 읽기 전용 (Read-Only): 데이터베이스 뷰는 기본적으로 읽기 전용임.

사용 함수 : DDIF_VIEW_PUT

DATA: ls_dd25v TYPE dd25v,    " 뷰 속성 구조체
      lt_dd26v TYPE TABLE OF dd26v, " 뷰 필드 구조체 테이블
      ls_dd26v TYPE dd26v.    " 뷰 필드 구조체

" 뷰 속성 정의
ls_dd25v-viewname = 'ZMY_VIEW'.     " 뷰 이름
ls_dd25v-viewclass = 'D'.           " 뷰 유형 (데이터베이스 뷰)
ls_dd25v-ddtext   = '샘플 뷰'.       " 뷰 설명

" 뷰 생성
CALL FUNCTION 'DDIF_VIEW_PUT'
  EXPORTING
    dd25v_wa = ls_dd25v             " 뷰 정의
  EXCEPTIONS
    others   = 1.                   " 예외 처리

5. 구조체 (Structure)

구조체는 실제 데이터를 저장하지 않고, 여러 필드를 묶어 사용하는 객체임.
주로 ABAP 프로그램에서 워크 에어리어로 사용되며, 여러 필드를 그룹화하여 처리할 수 있게 함.

주요 속성:

  • 필드 (Field): 여러 필드를 묶어서 하나의 구조로 정의함.

  • 데이터 타입 (Data Type): 구조체 내 필드의 데이터 타입은 각 필드가 참조하는 데이터 요소나 도메인에 의해 결정됨.

사용 함수 : DDIF_TABL_PUT

테이블 생성과 동일한 함수를 사용하지만, TABCLASS 속성에서 구조체(S)로 지정하여 구조체로 처리

DATA: ls_dd02v TYPE dd02v,    " 구조체 기본 속성
      lt_dd03p TYPE TABLE OF dd03p, " 구조체 필드 구조체 테이블
      ls_dd03p TYPE dd03p.    " 구조체 필드 구조체

" 구조체 속성 정의
ls_dd02v-tabname  = 'ZMY_STRUCTURE'.  " 구조체 이름
ls_dd02v-tabclass = 'STRUCT'.         " 구조체 유형
ls_dd02v-ddtext   = '샘플 구조체'.     " 구조체 설명

" 필드 정의
ls_dd03p-fieldname = 'FIELD1'.        " 필드 이름
ls_dd03p-rollname  = 'ZMY_DATA_ELEMENT'.  " 데이터 요소 이름
APPEND ls_dd03p TO lt_dd03p.

" 구조체 생성
CALL FUNCTION 'DDIF_TABL_PUT'
  EXPORTING
    dd02v_wa  = ls_dd02v             " 구조체 정의
  TABLES
    dd03p_tab = lt_dd03p             " 구조체 필드 정의
  EXCEPTIONS
    others    = 1.                   " 예외 처리

6. 타입 그룹 (Type Group)

타입 그룹은 여러 데이터 타입과 상수를 하나의 그룹으로 정의하는 객체임.
이를 통해 여러 프로그램에서 공통으로 사용할 수 있는 타입과 상수를 관리함.

주요 속성:

  • 타입 (Type): 프로그램에서 사용할 사용자 정의 데이터 타입을 정의함.

  • 상수 (Constant): 프로그램에서 재사용할 상수 값을 정의함.

사용 함수 : TR_TG_CREATE

DATA: lv_tgname TYPE tadir-object.

" 타입 그룹 이름 정의
lv_tgname = 'ZMY_TYPE_GROUP'.

" 타입 그룹 생성
CALL FUNCTION 'TR_TG_CREATE'
  EXPORTING
    tgname  = lv_tgname             " 타입 그룹 이름
  EXCEPTIONS
    others  = 1.                    " 예외 처리

데이터 요소는 필드의 데이터 타입과 속성을 정의함.
도메인은 필드의 기본 속성과 유효성 검사를 정의함.
테이블은 데이터를 저장하는 기본 단위이며, 데이터베이스에서 실제로 데이터를 저장함.
뷰는 여러 테이블에서 데이터를 조회하기 위한 가상의 테이블임.
구조체는 프로그램에서 여러 필드를 묶어 사용하는 단위로, 데이터는 저장하지 않음.
타입 그룹은 여러 프로그램에서 공통으로 사용할 데이터 타입과 상수를 정의함.

profile
백엔드 프로그래머

0개의 댓글