포스트

SAP Data Type

SAP Data Type

1. 전체 데이터 타입 매핑

**데이터 성격 (Data Nature)****CBO 물리 테이블 (define table)****CDS 뷰 / 인터페이스 (define view)****ABAP 클래스 로컬 변수 (DATA: TYPE ...)****Java / 웹 개발 매칭 레벨**
**고정 길이 문자형 숫자**`NUMC(len)``abap.numc(len)``TYPE n LENGTH len``String` (Format "%03d" 등)
**고정 길이 일반 문자**`CHAR(len)``abap.char(len)``TYPE c LENGTH len``char[]` / `String` (고정)
**가변 길이 대용량 문자**`STRING``abap.string``TYPE string``String` / `Text`
**기본 정수 (4Byte)**`INT4``abap.int4``TYPE i``int` / `Integer`
**대용량 정수 (8Byte)**`INT8``abap.int8``TYPE int8``long` / `Long`
**단정밀도 부동 소수점**`FLTP``abap.fltp``TYPE f``float` / `double`
**고정 소수점 연산 (Packed)**`DEC(len, dec)``abap.dec(len, dec)``TYPE p LENGTH len DECIMALS dec``BigDecimal` (금액 계산용)
**수량 연산 전용 Packed**`QUAN(len, dec)``abap.quan(len, dec)``TYPE p LENGTH len DECIMALS dec``BigDecimal` (수량/재고 연산)
**금액 연산 전용 Packed**`CURR(len, dec)``abap.curr(len, dec)``TYPE p LENGTH len DECIMALS dec``BigDecimal` (통화 금액 연산)
**수량 단위 (UoM)**`UNIT(3)``abap.unit(3)``TYPE c LENGTH 3` (또는 `unit`)`String` (EA, KG, BOX 등)
**통화 키 (Currency Key)**`CUKY(5)``abap.cuky(5)``TYPE c LENGTH 5` (또는 `cuky`)`String` (KRW, USD, EUR 등)
**순수 날짜 (YYYYMMDD)**`DATS``abap.dats``TYPE d``LocalDate` / `String`
**순수 시간 (HHMMSS)**`TIMS``abap.tims``TYPE t``LocalTime` / `String`
**일반 타임스탬프 (UTC)**`TIMESTAMP``abap.tstmp``TYPE timestamp``Instant` / `Timestamp` (Short)
**밀리초 포함 타임스탬프**`TIMESTAMPL``timestampl``TYPE timestampl``LocalDateTime` (Long)
**클라이언트 식별자**`CLNT``abap.clnt``TYPE c LENGTH 3` (기본 `sy-mandt`)Client ID 세션 파라미터
**Raw 바이너리 데이터**`RAW(len)``abap.raw(len)``TYPE x LENGTH len``byte[]` (바이트 배열)
**가변 바이너리 데이터**`RAWSTRING``abap.rawstring``TYPE xstring``Blob` / 파일 스트림 데이터

2. 영역별 특징

  1. CBO 물리 테이블 (define table) 구역
    • 특징: HANA DB 등 실제 데이터베이스 스토리지에 물리적인 카탈로그 스키마를 생성하는 레이어입니다.
    • 암기 팁: 무조건 대문자 표준 형식을 사용하며, 온점(.)이 절대 들어가지 않습니다. QUAN, CURR 같은 수량/금액 타입은 반드시 상단에 @Semantics 어노테이션이나 우측에 with referenced type으로 단위 컬럼(UNIT, CUKY)을 링크해 줘야 빌드가 통과됩니다.
  2. CDS 뷰 / 인터페이스 (define view) 구역
    • 특징: DB 테이블 위에 가상 뷰나 OData API 게이트웨이 파라미터(Abstract Entity 모달 팝업 등) 프로토콜 규격을 선언하는 레이어입니다.
    • 암기 팁: 반드시 앞에 abap. 이라는 접두사(소문자 온점)가 붙는 추상화 내장 타입을 사용해야 파서가 인식합니다. (단, timestampl 같은 일부 최신 데이터 원시 객체는 접두사 없이 통으로 소문자로 쓰기도 함)
  3. ABAP 클래스 로컬 변수 (DATA: TYPE ...) 구역
    • 특징: Java의 Service 클래스 구현체 본문처럼 메서드 내부(METHOD ~ ENDMETHOD)에서 비즈니스 알고리즘, 사칙연산, 루프문을 돌릴 때 메모리에 임시 변수를 선언하는 원시 언어 레이어입니다.
    • 암기 팁: 고정 길이를 가진 문자나 숫자를 선언할 때는 전통적인 ABAP 문법 서식인 TYPE 데이터유형 LENGTH 길이 포맷을 준수해야 합니다. (수량/금액 계산용 Packed 타입의 경우 소수점 자릿수 지정을 위해 뒤에 DECIMALS 자릿수 구문이 필수로 붙습니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.