이번에는 "GET_DOMAIN_VALUES"에 대해 포스팅하겠습니다.
Domain에 Fixed Value를 활용하여 예를 들어, 남자를 M, 여자를 F로 Domain를 지정하여, 이 외의 정보의 입력을 제한하기도 합니다. 따라서 Database에서는 M 또는 F의 값으로 저장되게 됩니다. 이럴 경우 End-User의 입장에서는 가독성이 떨어지고 Fixed Value를 개발자 임의로 지정한 경우 정확한 뜻을 모를 수도 있습니다. 이런 문제를 해결하기 위해서 "GET_DOMAIN_VALUES" Fixed Value에 Description Text를 불러와 예를 들어, Male, Female이라는 정보를 가져와서 보여줄 수 있게됩니다.
기능설명
지정된 도메인(domain)의 모든 유효 값을 조회하는 기능을 제공합니다. 도메인에 정의된 Fixed Value 값들을 DD07V및 DD07L Table형식으로 가져와서 다양한 용도로 활용할 수 있게 합니다. 해당 Standard Function를 잘 활용하고 이해하기 위해서는 DD07V에 대한 이해가 필요합니다.
DD07V?
DD07V는 DD07L과 DD07T 두 개의 테이블이 논리적으로 Join된 View입니다. 해당 View Field는 다음과 같습니다.
Signature
예시 코드
DATA: gt_domainl TYPE TABLE OF dd07l,
gs_domainv TYPE dd07v,
gt_domainv TYPE TABLE OF dd07v.
"//S_CANCEL의 Domain Value Range 정보를 추출"
CALL FUNCTION 'GET_DOMAIN_VALUES'
EXPORTING
domname = 'S_CANCEL'
text = 'X'
fill_dd07l_tab = 'X'
TABLES
values_tab = gt_domainv
values_dd07l = gt_domainl
EXCEPTIONS
no_values_found = 1
OTHERS = 2.
"//gt_sbook에 Function를 통해 가져온 DDTEXT(Fixed Value 설명)를 맵핑"
LOOP AT gt_sbook INTO gs_sbook.
READ TABLE gt_domainv WITH KEY domvalue_l = gs_sbook-cancelled
INTO gs_domainv .
gs_sbook-cancelled_t = gs_domainv-ddtext.
MODIFY gt_sbook FROM gs_sbook.
ENDLOOP.
실행결과
GET_DOMAIN_VALUES Function 에서 S_CANCEL 의 Domain의 정보를 가져와 SBOOK Table에 있는 예약 취소 여부 Colum( 열 ) 의 데이터 (SPACE or X) 를 Dictionary에 명시 되어있는 Fixed Value를 참고하여 ‘SPACE’에는 “Flight booked”라는 텍스트를 불러오며, ‘X’에는 “Booking canceled”라는 텍스트가 불러오게 됩니다. 이러한 텍스트를 불러오는 과정은 LOOP문을 활용하여, Function를 통해 불러 온 Fixed Value 와 SBOOK 의 ‘CANCELLED’ Colum를 비교하여 맞는 ‘DDTEXT’설명을 부르는 형식을 가지고 있습니다.
주의 사항
- 사용하려는 도메인이 실제로 시스템에 존재하는지 확인하세요. 존재하지 않는 도메인에 대해 함수를 호출하면 오류가 발생할 수 있습니다.
- 도메인 이름을 정확히 지정해야 합니다. 오타가 있을 경우 원하는 값을 가져올 수 없습니다.
'ABAP Standard Function' 카테고리의 다른 글
[ABAP] CONVERSION_EXIT_ALPHA_OUTPUT / Leading Zero 제거 (0) | 2024.12.20 |
---|---|
[ABAP] CLOI__PUT_SIGN_IN_FRONT / "-" 앞으로 가져오기 (0) | 2024.12.19 |
[ABAP] REUSE_ALV_FIELDCATALOG_MERGE / Internal Table의 Field 정보 가져오기 (0) | 2024.12.17 |
[ABAP] LVC_FIELDCATALOG_MERGE / Dictionary table의 field정보 가져오기 (2) | 2024.12.12 |
[ABAP] POPUP_TO_SELECT_MONTH / 연도 및 월 선택 팝업 (3) | 2024.09.25 |