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
| **옵션값** | **의미 및 설명** |
| **`#A`** | **Application 테이블.** 현업이 사용하는 일반적인 데이터(마스터, 전표 등)가 쌓이는 곳입니다. 클라이언트 카피 시 데이터가 함께 복사될 수 있지만, 시스템 이관(TR) 시 데이터 자체는 자동으로 넘어가지 않습니다. |
| **`#C`** | **Customizing 테이블.** 개발자나 BC가 설정하는 구성 데이터용 테이블입니다. 이 테이블에 데이터를 입력하면 **자동으로 TR(이관 요청서) 생성이 유도**되며, 운영 서버로 데이터가 함께 배포됩니다. |
| **`#L`** | **Local 테이블.** 주로 임시 데이터나 로그성 데이터를 저장하는 보관소 역할을 합니다. 클라이언트 카피를 하더라도 데이터가 복사되지 않고 비어있는 상태로 유지됩니다. |
- @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.int4` | 10 | - | 일반 정수, 일련번호, 카운터 (\$4\\text\{ Byte\}\$ 정수) |
| **숫자형** | `abap.dec( len, dec )` | 1 -31 | 0 - 1 | 진척도(%), 수량, 금액 연산 등 고정소수점 팩트 데이터 |
| **숫자형** | `abap.fltp` | 16 | - | 매우 정밀한 과학적 계산용 부동소수점 데이터 |
| **날짜/시간** | `abap.dats` | 8 | - | 날짜 데이터 (포맷: `YYYYMMDD`) |
| **날짜/시간** | `abap.tims` | 6 | - | 시간 데이터 (포맷: `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 라이센스를 따릅니다.