포스트

DataBase Table

DataBase Table

1. Annotation

  • @EndUserText.label : ‘Project PMS Task Table’
  • SE11 등에서 조회 시 화면에 나타나는 테이블의 한글/영문 설명(Short Text)
  • @AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
옵션값의미 및 설명
#NOT_EXTENSIBLE확장 불가. 테이블 구조를 절대 변경하지 못하도록 잠급니다. (현재 설정값)
#EXTENSIBLE_CHARACTER문자형 필드만 확장 허용. 단, 추가되는 필드는 반드시 문자형(Char, Numc 등) 데이터 타입이어야 합니다.
#EXTENSIBLE_CHARACTER_NUMERIC문자형 및 숫자형 필드 확장 허용. 문자형뿐만 아니라 정수형(Int), 금액/수량 필드까지 추가할 수 있습니다.
#ANY_STRUCTURE_CHARACTER_NUMERIC제한 없이 확장 허용. 딥 구조(Deep Structure)를 제외한 모든 타입의 구조 확장을 허용합니다. (가장 유연함)
  • @AbapCatalog.tableCategory : #TRANSPARENT
옵션값의미 및 설명
#TRANSPARENT투명 테이블. SAP ABAP Dictionary의 정의와 실제 DB(HANA DB 등)의 테이블 구조가 1:1로 정확히 일치합니다. CBO 마스터/트랜잭션 테이블을 만들 때 99% 이 옵션을 사용 합니다.
#GLOBAL_TEMPORARY글로벌 임시 테이블 (GTT). 프로그램 실행 중에만 임시로 데이터를 적재하고, 세션이 끝나거나 COMMIT WORK / ROLLBACK WORK가 수행되면 데이터가 자동으로 지워지는 휘발성 테이블입니다.
  • @AbapCatalog.deliveryClass : #A
옵션값의미 및 설명
#AApplication 테이블. 현업이 사용하는 일반적인 데이터(마스터, 전표 등)가 쌓이는 곳입니다. 클라이언트 카피 시 데이터가 함께 복사될 수 있지만, 시스템 이관(TR) 시 데이터 자체는 자동으로 넘어가지 않습니다.
#CCustomizing 테이블. 개발자나 BC가 설정하는 구성 데이터용 테이블입니다. 이 테이블에 데이터를 입력하면 자동으로 TR(이관 요청서) 생성이 유도 되며, 운영 서버로 데이터가 함께 배포됩니다.
#LLocal 테이블. 주로 임시 데이터나 로그성 데이터를 저장하는 보관소 역할을 합니다. 클라이언트 카피를 하더라도 데이터가 복사되지 않고 비어있는 상태로 유지됩니다.
  • @AbapCatalog.dataMaintenance : #RESTRICTED
옵션값의미 및 설명
#RESTRICTED제한적 유지보수. 기본적으로 직접 수정이 제한되지만, 별도의 데이터 브라우저 권한이 있는 관리자는 수정할 수 있는 상태입니다.
#ALLOWED유지보수 허용.SE16N 등에서 편집 모드로 데이터를 직접 자유롭게 수정할 수 있도록 완전히 허용합니다. 개발 단계나 관리가 필요한 CBO 셋팅 테이블에 자주 씁니다.
#NOT_ALLOWED유지보수 금지. 어떠한 표준 툴로도 테이블 데이터를 직접 수정할 수 없게 철저히 막습니다. 오직 프로그램 로직(RAP, ABAP 소스코드)을 통해서만 데이터가 입력/수정되어야 하는 중요 트랜잭션 테이블에 적용합니다.

2. 테이블 정의

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
define table ztwbs_task2 {

  key client      : abap.clnt not null;
  key prog_key    : sysuuid_x16 not null;
  prog_no         : abap.char(10);
  prog_name       : abap.char(100);
  screen_name     : abap.char(100);
  biz_type        : abap.char(100);
  category        : abap.char(100);
  deploy_yn       : abap.char(1);
  dev_type        : abap.char(100);
  developer       : abap.char(10);
  complete_yn     : abap.char(1);
  ui_type         : abap.char(100);
  git_url         : abap.string(0);
  iam_id          : abap.char(30);
  is_relevant     : abap.char(1);
  obj_type        : abap.char(100);
  package_name    : abap.char(100);
  srv_obj         : abap.char(100);
  srv_uri         : abap.string(0);
  start_date      : abap.dats;
  end_date        : abap.dats;
  progress        : abap.int1;
  created_by      : abp_creation_user;
  created_at      : abp_creation_tstmpl;
  last_changed_by : abp_locinst_lastchange_user;
  last_changed_at : abp_locinst_lastchange_tstmpl;

}

3. 데이터 타입

분류데이터 타입 (ABAP Type)길이 (Length)소수점 (Decimals)주요 용도 및 설명
문자형abap.char( n )1 - 13333-일반 텍스트, 고정 길이 코드, ID 필드 등
문자형abap.string가변 길이-대용량 텍스트, 주소 명세, 가변 길이 문자열
숫자형abap.int410-일반 정수, 일련번호, 카운터 ($4\text{ Byte}$ 정수)
숫자형abap.dec( len, dec )1 -310 - 1진척도(%), 수량, 금액 연산 등 고정소수점 팩트 데이터
숫자형abap.fltp16-매우 정밀한 과학적 계산용 부동소수점 데이터
날짜/시간abap.dats8-날짜 데이터 (포맷: YYYYMMDD)
날짜/시간abap.tims6-시간 데이터 (포맷: HHMMSS)
특수 규격abap.unit( n )1 - 3-수량 참조 필드용 단위 코드 (예: EA, KG, %)
특수 규격abap.cuky( n )1 - 5-금액 참조 필드용 통화 코드 (예: KRW, USD)

4. 테이블 생성 시 필수 값

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
...
define table ztbpprod {

  // 1. 시스템 기본   복합  (Composite Keys)
  key client      : abap.clnt not null;
  key plan_id     : abap.char(20) not null; // 사업계획ID
  key version     : abap.char(2) not null;  // 버전ID
  key gjahr       : gjahr not null;         // 회계연도
  key poper       : poper not null;         // 
  key werks       : werks_d not null;       // 플랜트
  key matnr       : matnr not null;         // 제품 (자재번호)

  // 2. 일반 데이터  수량 필드 (Data & Quantity Fields)
  sales_qty       : meng13;                 // 판매수량
  open_qty        : meng13;                 // 기초수량
  close_qty       : meng13;                 // 기말수량
  prod_qty        : meng13;                 // 생산수량

  @Semantics.unitOfMeasure: true
  meins           : meins;                  // 단위 (EA )

  // 3. Generate ABAP Object 필수 관리 필드 (Audit Fields)
  created_by      : abp_creation_user;
  created_at      : abp_creation_tstmpl;
  last_changed_by : abp_locinst_lastchange_user;
  last_changed_at : abp_locinst_lastchange_tstmpl;

}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.