본문 바로가기

ABAP 프로그래밍 개념/ABAP Data Dictioanry

5. Domain

Domain은 Data Element에 대한 기술적인 속성을 제공합니다. Domain의 중요한 속성은 value range를 정의한다는 것입니다. Domain에 연결된 Data Element를 사용하는 모든 테이블 필드 및 구조 구성 요소는 도메인에 의해 정의된 value range를 가질 수 있습니다.  value range는 필드에 대한 가능한 항목을 제공합니다.

이전 글에서 Domain을 정의하고 Data Element에 연결하는 방법에 대해 설명했습니다. 이 글에서는 Domain에 설정할 수 있는 일부 옵션에 대해 논의하겠습니다.

ABAP Data Dictionary의 초기 화면에서 Domain 라디오 버튼을 선택하여 도메인을 생성할 수 있습니다. Dictionary: Change Domain 화면의 Definition 탭(아래 그림 참조)에는 다음과 같은 옵션이 포함되어 있습니다:

■ Format
F4 Help를 사용하여 ABAP Data Dictionary의 elementary data type를 사용할 수 있습니다. 문자의 개수와 소숫점을 관리할 수 있습니다.

■ Output Characteristics
Output Characteristics은 이 Domain을 사용하는 Data Element에 대해 화면에 표시되거나 WRITE 문을 사용할 때 참조되는 필드의 표시 방식을 정의합니다. Output Characteristics 영역에서는 다음과 같은 옵션을 찾을 수 있습니다.


▶ Output Length(출력 길이) : output length value(출력 길이 값)은 선택한 elementary data type에 따라 결정됩니다. 이 값을 유지하여 재정의할 수도 있습니다. 필드의 출력 길이는 필드 내의 formatting characters에 따라 결정되어야 합니다. 예를 들어, 날짜 필드의 내부 길이는 8 (YYYYMMDD)이지만, 출력 길이는 구분 기호(DD-MM-YYYY 등)를 수용할 수 있도록 더 크게 설정되어야 합니다.

▶Output : 부동 소수점인 도메인은 사용 가능한 옵션 중 하나를 선택하여 출력 스타일을 할당해야 합니다.

▶Convers. Routine
변환 루틴( Convers. Routine : 변환 종료라고도 함)은 CONVERSION_EXIT_XXXXX_INPUT 및 CONVERSION_EXIT_XXXX_OUTPUT과 같은 네이밍 규칙으로 생성된 특수한 함수 모듈입니다. 여기서 XXXXX는 conversion routine의 다섯 글자 이름입니다.

각 conversion routine에는 입력 및 출력 함수 모듈이 모두 존재합니다. 화면 필드가 이 도메인에 연결된 데이터 요소를 참조하고 conversion routine이 도메인에 유지되는 경우, 입력 화면마다 _INPUT 함수 모듈이 호출되고 화면 출력에 대해서는 _OUTPUT Function Module이 호출됩니다. 이를 통해 데이터를 내부 및 외부 형식으로 변환할 수 있습니다.

예를 들어, 사용자는 외부 형식(DD-MM-YYYY)으로 날짜를 입력하고, 이 값은 conversion routine(_INPUT 함수 모듈)을 통해 내부 형식(YYYYMMDD)으로 변환되어 프로그램이 내부적으로 사용할 수 있게 됩니다(예: select WHERE 절에서 사용). 이 날짜가 화면에 출력될 때, 날짜는 외부 형식(_OUTPUT 함수 모듈)으로 변환되어 사용자에게 표시됩니다.

이 필드에는 다섯 글자로 된 conversion routine 이름을 유지할 수 있습니다. conversion routine 이름은 화면 필드에 직접 할당할 수도 있습니다. custom conversion routine을 생성하려면, conversion routine의 네이밍 규칙을 따라 Function Builder에서 생성할 수 있습니다. conversion exit function modules은 INPUT 매개변수와 OUTPUT 매개변수로 각각 하나의 필수(Mandatory) 매개변수를 가져야 합니다. INPUT 매개변수에는 변환될 값을 가지고 있고, OUTPUT 매개변수에는 변환된 값이 저장됩니다.

 ● Sign : 데이터 유형이 숫자인 경우, 이 옵션을 선택하여 화면에서 음수 값에 대해 음수 부호를 표시할 수 있습니다.

 ● Lower Case : 문자 유형의 필드에 대해 이 옵션을 설정하면 값이 대문자로 변환되지 않도록 할 수 있습니다. 예를 들어, 선택 화면 필드에 값을 입력할 때 프로그램으로 전달되는 값은 자동으로 대문자로 변환됩니다. 필드의 도메인에서 이 값을 설정하면 값은 변환되지 않고 그대로 프로그램 필드로 전달됩니다.

 ● Time Format : 시간 필드 (TIMS 유형)의 경우, 시간 형식을 12시간 또는 24시간으로 설정할 수 있습니다.

Value Range 탭을 통해 도메인이 연결된 Data Element를 참조하는 필드의 값을 범위로 유지할 수 있습니다. 여기에서 고정된 값(fixed value), 간격 (value range : 값 범위) 또는 두 가지를 조합하여 설정할 수 있습니다. value range는 CHAR, NUMC, DEC, INT1, INT2 및 INT4와 같은 elementary data type에 대해 정의할 수 있습니다. CHAR 및 NUMC 유형의 필드의 경우, 값 범위는 도메인에 연결된 Data Element를 참조하는 화면 필드에 대한 유효한 입력 값이 지정됩니다.

입력 필드(input field)에는 검색 도움말(search help)이 연결되어 있지 않으며, 값 범위(value range)가 입력 도움말(input help)로 표시됩니다. 값 범위(value range)는 ABAP 프로그램과 데이터베이스 필드의 데이터 객체 내용에는 적용되지 않습니다. 값 범위(value range)를 입력 도움말(input help)에 사용하는 경우 각 개별 값에 대한 짧은 텍스트를 유지할 수 있으며, 이 텍스트는 입력 도움말(input help)에 표시됩니다.

Value Table은 관리할 수 있으며, 외래 키를 사용하여 테이블 필드에 대해 체크 테이블이 할당될 때 체크 테이블로 제안됩니다. 값 테이블 자체는 값 체크를 트리거하지 않습니다.

표준 도메인(r standard domains)의 경우, 추가로 고정된 값을 유지하기 위해 고정된 값 추가를 정의할 수 있습니다. 추가로 고정된 값은 업그레이드 과정에서 손실되지 않습니다. 도메인은 여러 개의 고정된 값 추가를 가질 수 있습니다. 도메인에 대해 고정된 값 추가를 정의하려면 메뉴 경로로 이동하십시오. GoTo • 고정된 값 추가(Fixed Value Append)를 사용하세요.

반응형

'ABAP 프로그래밍 개념 > ABAP Data Dictioanry' 카테고리의 다른 글

7. Lock Objects  (0) 2023.06.05
6. Search Help  (0) 2023.06.04
4. Type Group  (0) 2023.06.01
3.3 Table Types  (0) 2023.06.01
3.2 Structure  (0) 2023.05.31