BTP
OData V4 개발시 abap.curr 타입 확인사항
2026.05.0758
ADT에서 OData V4로 개발 할 때는 abap.curr 타입 필드의 소수점을 무조건 2자리로 맞춰야 오류가 발생하지 않습니다.
(OData V2는 오류 발생 없음)
발생 이유로 SAP Fiori의 OData V4 표준 프로토콜은 CURR필드의 소수점 자리가 2자리인 경우를 기본으로 설계되어 있습니다.
작성된 DB 테이블의 금액 필드 정의(abap.curr(15,3))에서 소수점을 3자리로 설정했기 때문에, V4 바인딩 시 "지원하지 않는 소수점 형식"이라며 거부하는 것 입니다.
방법 1: 소수점을 2자리로 수정 (가장 깔끔한 방법)
특별히 소수점 3자리가 반드시 필요한 업종(예: 유류, 화학 등 특정 단위)이 아니라면, 통상적인 통화 기준인 2자리로 테이블과 뷰를 수정하는 것이 가장 간단하다.(소수점이 2자리로 되어있지 않은 모든 금액(CURR) 필드를 수정해야 함)
- DB Table :
abap.curr(15,n)->abap.curr(15,2)로 변경 후 활성화. - Basic/Root/Projection View: 모두 활성화(
Ctrl+F3)하여 변경 사항 반영. - Service Binding: 다시 생성.
방법 2: OData V2로 바인딩 타입 변경
만약 업무 로직상 반드시 소수점 3자리를 유지해야 한다면, OData V4 대신 OData V2를 사용해야 한다.
(Odata V2 는 소수점 최대 자리(.31)까지 지원)
- Service Binding을 생성할 때 Binding Type을
OData V2 - UI로 선택 - 생성.
OData V4 사용시 CURR 타입의 소수점은 무조건 2자리로 고정되어야 한다. 1자리 이하 또는 3자리 이상으로 설정시 오류가 발생함
ex)
abap.curr(N,2) ← 오류 없음
abap.curr(N,1) ← 오류 발생
abap.curr(N,3) ← 오류 발생
abap.curr(N,4) ← 오류 발생 …