행복한 째아의 개발 블로그

[ABAP 개념] 왜 Domain를 사용할까? 본문

SAP/SAP ABAP

[ABAP 개념] 왜 Domain를 사용할까?

째아 2022. 10. 17. 14:29

https://jakim09.tistory.com/m/7

 

[ABAP 개념] 왜 Data Element를 사용할까?

ABAP Dictionary에서 테이블 필드의 데이터 타입을 설정할 때, 우리는 두 가지 선택을 할 수 있다. 바로 Predefined Type(내장 유형)과 Data Element이다. Predefined Type은 ABAP에서 제공되는 기본 타입이다. 우리

jakim09.tistory.com

위의 글에서 Data Element를 사용하는 이유에 대해 알아봤다.

그중 3번째 이유였던 Domain을 사용할 수 있다! 에 대해 더 자세히 알아보려고 한다.

 

시작해보자~


1. 소문자 입력 가능

 

SAP에서 View를 통해 데이터를 입력할 때 소문자로 입력해도 자동으로 대문자로 변환된다.

(sql 쿼리로 데이터 입력하는 것이랑 다름. SAP 시스템에서 입력하는 경우만 해당)

비밀번호, 이메일 등 대소문자의 구분이 중요한 필드들이 있는데 SAP에서 대문자만 입력할 수 있다면 어떡해야 될까?

sql 쿼리로 데이터를 입력해주면 되지만.. (귀찮다.)

그러면 소문자 입력이 필요한 경우 SAP의 입력 기능은 쓸모가 없을까?

 

절대 아니다.

 

데이터 타입을 설정할 때 도메인으로 설정하고 도메인에서 소문자를 쓸 수 있다고 허용해주면 된다.

도메인 유지보수 창을 열면 나오는 초기화면이다.

Data Type을 문자 데이터 타입으로 설정하면 Lower Case 체크박스가 활성화된다.

아래에 있는 Lower Case를 체크해주면 소문자로도 입력이 가능하다.

 

아주 쉽지만 필드 생성 단계에서 제대로 설정해주지 않으면 SAP 시스템에서 소문자로 백날 입력해도 대문자로 입력된다.

울면서 sql로 하나하나 입력하지 말고 필드 데이터 타입을 Domain으로 설정하도록 하자.


2. Value Range 설정 가능

 

흔히 SQL에서 뜻하는 도메인이란 하나의 속성이 취할 수 있는 동일한 타입의 원자값들의 집합이다.

즉, 데이터 값의 범위를 제한하는 제약조건을 둬서 설정해둔 값만 입력할 수 있게 하는 것이다.

SAP에서도 이와 동일한 기능이 존재한다.

바로 Domain에서 Value Range 설정!

Value Range는 값 범위라는 뜻으로 내가 원하는 값의 범위만 입력받을 수 있다.

 

예를 들어 사원 정보 테이블에서 직급을 입력받을 때 미확인, 관리직군(M), 기술직군(T)의 값만 받고 싶다면 Domain에서 Value Range를 설정해주면 된다.

도메인 유지보수 창에서 Value Range 탭을 클릭해보자.

그런 뒤에 Single Vals에 입력받고 싶은 값들을 넣어주면 끝.

뷰에서 데이터를 입력하려고 보면 설정해 준 Range Value에  해당하는 값만 입력할 수 있는 것을 확인할 수 있다.

 

참고로 Value Range를 설정할 때는 빈 값을 하나 넣어주도록 하자.

실제로 데이터를 입력할 때 해당 필드의 값을 몰라서 빈 값을 넣어주는 경우가 있다.

그런데 Value Range에 빈 값이 설정돼있지 않다면?

오류가 나면서 데이터 입력이 안될 것이다.

이런 경우를 막기 위해 습관처럼 빈 값을 하나 넣어주도록 하자.


3. 값 입력 시 부호 사용 가능

 

SAP는 ERP 시스템이다.

결국 회사에서 자원을 관리하기 위해 SAP를 사용한다.

회사에서는 돈이 들어오는 경우도 있지만 반대로 나가는 경우도 존재한다.

또한 자원을 구매하고 판매하며 수량이 변동된다.

이러한 경우 데이터에 +/-를 붙여서 쉽게 표기할 수 있다.

 

하지만 Domain에서 따로 설정하지 않으면 부호가 붙은 데이터는 입력할 수 없다.

그래서 값 입력 시 부호를 사용할 수 있는 방법에 대해 알아보려 한다.

도메인 유지보수 창에서 Data Type에 숫자 관련 타입으로 입력한다.

(통화의 경우 CURR)

그러면 아래에 Sign 체크박스가 활성화된다.

이를 체크해주면 끝.

 

참고)

SAP에서 음수 값을 입력 시 '-'가 뒤에 붙는다.

-100을 입력해도 100-로 보인다.

이런 데이터를 엑셀에 입력해야 되는 경우가 있을 텐데 하나하나 지우고 다시 입력하지 말자.

셀 범위를 설정한 뒤 [데이터]-[텍스트 나누기]를 눌러준 뒤 마침을 누르면 자동으로 -가 앞으로 간 데이터로 변경될 것이다.


지금까지 왜 Domain을 사용해야 되는지에 대해 알아봤다.

상황에 따라서 Predefined Type을 사용해도 되고 Data Element에서 Predefined Type이나 참조 타입을 사용해도 되고 Domain을 사용해도 된다.

정답은 없으니 입력받는 데이터가 무엇인지 생각하고 Data Type을 설정하도록 하자~

Comments